<html>
<head>
  <title>20-undo日志</title>
  <basefont face="微软雅黑" size="2" />
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <meta name="exporter-version" content="YXBJ Windows/600646 (zh-CN, DDL); Windows/6.1.1 (Win64);"/>
  <meta name="content-class" content="yinxiang.markdown"/>
  <style>
    body, td {
      font-family: 微软雅黑;
      font-size: 10pt;
    }
  </style>
</head>
<body>
<a name="943"/>
<h1>20-undo日志</h1>

<div><span><div style="font-size: 14px; margin: 0; padding: 0; width: 100%;"><h2 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 34px; border-bottom: 1px solid #dbdbdb; color: #333;">1 事务回滚的需求</h2>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">事务需要保证原子性，也就是事务中的操作要么全部完成，要么什么也不做。但是偏偏有时候事务执行到一半会出现一些情况，比如：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">情况一：事务执行过程中可能遇到各种错误，比如服务器本身的错误，操作系统错误，甚至是突然断电导致的错误；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">情况二：程序员可以在事务执行过程中手动输入ROLLBACK语句结束当前的事务的执行；</li>
</ul>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">这两种情况都会导致事务执行到一半就结束，但是事务执行过程中可能已经修改了很多东西，为了保证事务的原子性，需要把东西改回原先的样子，这个过程就称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">回滚</strong>（英文名：<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">rollback</strong>），这样就可以造成一个假象：<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">这个事务看起来什么都没做，所以符合原子性要求。</strong></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">那么在要对一条记录做改动时（这里的改定可以指INSERT、DELETE、UPDATE），需要留一手——<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">把回滚时所需的东西都给记下来</strong>。比如说：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">插入一条记录时，至少要把这条记录的主键值记下来，之后回滚的时候只需要把这个主键值对应的记录删掉；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">删除了一条记录，至少要把这条记录中的内容都记下来，这样之后回滚时再把由这些内容组成的记录插入到表中；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">修改了一条记录，至少要把修改这条记录前的旧值都记录下来，这样之后回滚时再把这条记录更新为旧值。</li>
</ul>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">MySQL把这些为了回滚而记录的数据称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">撤销日志</strong>，英文名<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">undo log</strong>。</p>
<h2 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 34px; border-bottom: 1px solid #dbdbdb; color: #333;">2 事务ID</h2>
<h3 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 27px; color: #333;">2-1 给事务分配id的时机</h3>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">如果某个事务执行过程中对某个表执行了增、删、改操作，那么InnoDB存储引擎就会给它分配一个独一无二的事务id，分配方式如下：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">对于<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">只读事务</strong>来说，只有在它第一次对某个<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">用户创建的临时表</strong>执行增、删、改操作时才会为这个事务分配一个事务id，否则的话是不分配事务id的；<br/>
前边说过对某个查询语句执行EXPLAIN分析它的查询计划时，有时候在Extra列会看到Using temporary的提示，这个表明在执行该查询语句时会用到内部临时表。这个所谓的内部临时表和我们手动用CREATE TEMPORARY TABLE创建的用户临时表并不一样，在事务回滚时并不需要把执行SELECT语句过程中用到的内部临时表也回滚，在执行SELECT语句用到内部临时表时并不会为它分配事务id。</p>
</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">对于<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">读写事务</strong>来说，只有在它第一次对某个表（包括用户创建的临时表）执行增、删、改操作时才会为这个事务分配一个事务id，否则的话也是不分配事务id的；</p>
</li>
</ul>
<h3 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 27px; color: #333;">2-2 事务id的生成</h3>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">事务id的分配策略和我们前边提到的对隐藏列row_id（当用户没有为表创建主键和UNIQUE键时InnoDB自动创建的列）的分配策略大抵相同，具体策略如下：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">服务器会在内存中维护一个全局变量，每当需要为某个事务分配一个事务id时，就会把该变量的值当作事务id分配给该事务，并且把该变量自增1；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">每当这个变量的值为256的倍数时，就会将该变量的值刷新到系统表空间的<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">页号为5</strong>的页面中一个称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">Max Trx ID</strong>的属性处，这个属性占用8个字节的存储空间；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">当系统下一次重新启动时，会将上边提到的Max Trx ID属性加载到内存中，将该值加上256之后赋值给我们前边提到的全局变量（因为在上次关机时该全局变量的值可能大于Max Trx ID属性值）；</li>
</ul>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">这样就可以保证整个系统中分配的事务id值是一个递增的数字。先被分配id的事务得到的是较小的事务id，后被分配id的事务得到的是较大的事务id。</p>
<h3 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 27px; color: #333;">2-3 trx_id隐藏列</h3>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">在InnoDB记录行格式的时候重点强调过：**聚簇索引的记录除了会保存完整的用户数据以外，而且还会自动添加名为trx_id、roll_pointer的隐藏列，如果用户没有在表中定义主键以及UNIQUE键，还会自动添加一个名为row_id的隐藏列。**所以一条记录在页面中的真实结构看起来就是这样的：<img src="20-undo日志_files/1.jpg" type="image/jpeg" data-filename="1.jpg"/><br/>
其中的trx_id列其实还蛮好理解的，就是某个对这个聚簇索引记录做改动的语句所在的事务对应的事务id而已（此处的改动可以是INSERT、DELETE、UPDATE操作）。</p>
<h2 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 34px; border-bottom: 1px solid #dbdbdb; color: #333;">3 undo日志的格式</h2>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">为了实现事务的<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">原子性</strong>，InnoDB存储引擎在实际进行增、删、改一条记录时，都需要<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">先把对应的undo日志记下来</strong>。<br/>
一般每对一条记录做一次改动，就对应着一条undo日志，但在某些更新记录的操作中，也可能会对应着2条undo日志。一个事务在执行过程中可能新增、删除、更新若干条记录，也就是说需要记录很多条对应的undo日志，这些undo日志会被从<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">0开始编号</strong>，也就是说根据生成的顺序分别被称为第0号undo日志、第1号undo日志、...、第n号undo日志等，这个编号也被称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">undo no</strong>。</p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">这些undo日志是被记录到类型为FIL_PAGE_UNDO_LOG（对应页面类型type的十六进制是0x0002）的页面中。这些页面可以从系统表空间中分配，也可以从一种专门存放undo日志的表空间，也就是所谓的undo tablespace中分配。不过关于如何分配存储undo日志的页面这个事情我们稍后再说，现在先来看看不同操作都会产生什么样子的undo日志吧～ 为了故事的顺利发展，我们先来创建一个名为undo_demo的表：<img src="20-undo日志_files/Image.png" type="image/png" data-filename="Image.png"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">这个表中有3个列，其中id列是主键，我们为key1列建立了一个二级索引，col列是一个普通的列。我们前边介绍InnoDB的数据字典时说过，每个表都会被分配一个唯一的table id，我们可以通过系统数据库information_schema中的innodb_sys_tables表来查看某个表对应的table id是什么，现在我们查看一下undo_demo对应的table id是多少：<img src="20-undo日志_files/Image [1].png" type="image/png" data-filename="Image.png"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">从查询结果可以看出，undo_demo表对应的table id为138，先把这个值记住，我们后边有用。</p>
<h3 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 27px; color: #333;">3-1 insert操作对应的undo日志</h3>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">前边说过，当我们向表中插入一条记录时会有乐观插入和悲观插入的区分，但是不管怎么插入，最终导致的结果就是这条记录被放到了一个数据页中。如果希望回滚这个插入操作，那么把这条记录删除就好了，也就是说在写对应的undo日志时，主要是把这条记录的主键信息记上。所以设计InnoDB的大叔设计了一个类型为TRX_UNDO_INSERT_REC的undo日志，它的完整结构如下图所示：<img src="20-undo日志_files/1 [1].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">undo no在一个事务中是从0开始递增的，也就是说只要事务没提交，每生成一条undo日志，那么该条日志的undo no就增1；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">如果记录中的主键只包含一个列，那么在类型为TRX_UNDO_INSERT_REC的undo日志中只需要把该列占用的存储空间大小和真实值记录下来，如果记录中的主键包含多个列，那么每个列占用的存储空间大小和对应的真实值都需要记录下来（图中的len就代表列占用的存储空间大小，value就代表列的真实值）。<br/>
<img src="20-undo日志_files/Image [2].png" type="image/png" data-filename="Image.png"/></li>
</ul>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">因为记录的主键只包含一个id列，所以我们在对应的undo日志中只需要将待插入记录的id列占用的存储空间长度（id列的类型为INT，INT类型占用的存储空间长度为4个字节）和真实值记录下来。本例中插入了两条记录，所以会产生两条类型为TRX_UNDO_INSERT_REC的undo日志：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">第一条undo日志的undo no为0，记录主键占用的存储空间长度为4，真实值为1。画一个示意图就是这样：<img src="20-undo日志_files/1 [2].jpg" type="image/jpeg" data-filename="1.jpg"/></li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">第二条undo日志的undo no为1，记录主键占用的存储空间长度为4，真实值为2。画一个示意图就是这样（与第一条undo日志对比，undo no和主键各列信息有不同）：<img src="20-undo日志_files/1 [3].jpg" type="image/jpeg" data-filename="1.jpg"/><br/>
<img src="20-undo日志_files/1 [4].jpg" type="image/jpeg" data-filename="1.jpg"/></li>
</ul>
<h4 style="line-height: 160%; box-sizing: content-box; font-size: 20px; color: #333;">roll_pointer隐藏列的含义</h4>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">是时候揭开roll_pointer的真实面纱了，这个占用7个字节的字段其实一点都不神秘，本质上就是一个指向记录对应的undo日志的一个指针。比方说我们上边向undo_demo表里插入了2条记录，每条记录都有与其对应的一条undo日志。记录被存储到了类型为FIL_PAGE_INDEX的页面中（就是我们前边一直所说的数据页），undo日志被存放到了类型为FIL_PAGE_UNDO_LOG的页面中。效果如图所示：<img src="20-undo日志_files/1 [5].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">从图中也可以更直观的看出来，roll_pointer本质就是一个指针，指向记录对应的undo日志。不过这7个字节的roll_pointer的每一个字节具体的含义我们后边唠叨完如何分配存储undo日志的页面之后再具体说哈～</p>
<h3 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 27px; color: #333;">3-2 delete操作对应的undo日志</h3>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">插入到页面中的记录会根据记录头信息中的next_record属性组成一个单向链表，这个链表是<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">正常记录链表</strong>。被删除的记录其实也会根据记录头信息中的next_record属性组成一个链表，只不过这个链表中的记录占用的存储空间可以被重新利用，所以也称这个链表为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">垃圾链表</strong>。<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">Page Header</strong>部分有一个称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">PAGE_FREE</strong>的属性，它指向由被删除记录组成的垃圾链表中的头节点。<br/>
假设此刻某个页面中的记录分布情况是这样的：<img src="20-undo日志_files/1 [6].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">假设现在准备使用DELETE语句把正常记录链表中的最后一条记录给删除掉，其实这个删除的过程需要经历两个阶段：</p>
<h4 style="line-height: 160%; box-sizing: content-box; font-size: 20px; color: #333;">阶段一</h4>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">仅仅将记录的delete_mask标识位设置为1，其他的不做修改（其实会修改记录的trx_id、roll_pointer这些隐藏列的值）。InnoDB把这个阶段称之为delete mark。<img src="20-undo日志_files/1 [7].jpg" type="image/jpeg" data-filename="1.jpg"/><br/>
可以看到，正常记录链表中的最后一条记录的<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">delete_mask</strong>值被设置为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">1</strong>，但是并没有被加入到垃圾链表。也就是此时记录处于一个<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">中间状态</strong>。在删除语句所<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">在的事务提交之前，被删除的记录一直都处于这种所谓的中间状态</strong>。</p>
<h4 style="line-height: 160%; box-sizing: content-box; font-size: 20px; color: #333;">阶段二</h4>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">当该删除语句所<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">在的事务提交之后</strong>，会有专门的线程后来真正的把记录删除掉。所谓真正的删除就是把该记录<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">从正常记录链表中移除，并且加入到垃圾链表中，然后还要调整一些页面的其他信息</strong>，比如页面中的用户记录数量PAGE_N_RECS、上次插入记录的位置PAGE_LAST_INSERT、垃圾链表头节点的指针PAGE_FREE、页面中可重用的字节数量PAGE_GARBAGE、还有页目录的一些信息等等。InnoDB把这个阶段称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">purge</strong>。</p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">把阶段二执行完了，这条记录就算是真正的被删除掉了。这条已删除记录占用的存储空间也可以被重新利用了。画下来就是这样：<br/>
<img src="20-undo日志_files/1 [8].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">对照着图还要注意一点，将被删除记录加入到垃圾链表时，实际上<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">加入到链表的头节点处</strong>，会跟着<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">修改PAGE_FREE属性的值</strong>。<br/>
<img src="20-undo日志_files/Image [3].png" type="image/png" data-filename="Image.png"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">从上边的描述中我们也可以看出来，在删除语句所在的事务提交之前，只会经历阶段一，也就是delete mark阶段（提交之后就不用回滚了，所以只需考虑对删除操作的阶段一做的影响进行回滚）。InnoDB为此设计了一种称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">TRX_UNDO_DEL_MARK_REC类型</strong>的undo日志，它的完整结构如下图所示：<img src="20-undo日志_files/1 [9].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">在对一条记录进行delete mark操作前，需要把该记录的旧的trx_id和roll_pointer隐藏列的值都给记到对应的undo日志中来，就是我们图中显示的old trx_id和old roll_pointer属性。这样有一个好处，那就是可以通过undo日志的old roll_pointer找到记录在修改之前对应的undo日志。比方说在一个事务中，我们先插入了一条记录，然后又执行对该记录的删除操作，这个过程的示意图就是这样：<img src="20-undo日志_files/1 [10].jpg" type="image/jpeg" data-filename="1.jpg"/><br/>
从图中可以看出来，执行完delete mark操作后，它对应的undo日志和INSERT操作对应的undo日志就串成了一个链表。这个很有意思啊，这个链表就称之为<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">版本链</strong>，现在貌似看不出这个版本链有啥用，等我们再往后看看，讲完UPDATE操作对应的undo日志后，这个所谓的版本链就慢慢的展现出它的牛逼之处了。</p>
</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">与类型为TRX_UNDO_INSERT_REC的undo日志不同，类型为TRX_UNDO_DEL_MARK_REC的undo日志还多了一个<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">索引列各列信息</strong>的内容，也就是说如果某个列被包含在某个索引中，那么它的相关信息就应该被记录到这个索引列各列信息部分，所谓的相关信息包括该<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">列在记录中的位置（用pos表示）</strong>，<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">该列占用的存储空间大小（用len表示）</strong>，<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">该列实际值（用value表示）</strong>。<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">所以索引列各列信息存储的内容实质上就是&lt;pos, len, value&gt;的一个列表</strong>。这部分信息主要是<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">用在事务提交后</strong>，对该中间状态记录做真正删除的阶段二，也就是<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">purge阶段</strong>中使用的，具体如何使用现在我们可以忽略～</p>
</li>
</ul>
<h4 style="line-height: 160%; box-sizing: content-box; font-size: 20px; color: #333;">删除一条记录例子</h4>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;"><img src="20-undo日志_files/Image [4].png" type="image/png" data-filename="Image.png"/><br/>
<img src="20-undo日志_files/1 [11].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">对照这个图，注意下边几点：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">因为这条undo日志是id为100的事务中产生的第3条undo日志，所以它对应的undo no就是2；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">在对记录做delete mark操作时，记录的trx_id隐藏列的值是100（也就是说对该记录最近的一次修改就发生在本事务中），所以把100填入old trx_id属性中。然后把记录的roll_pointer隐藏列的值取出来，填入old roll_pointer属性中，这样就可以通过old roll_pointer属性值找到最近一次对该记录做改动时产生的undo日志；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">由于undo_demo表中有2个索引：一个是聚簇索引，一个是二级索引idx_key1。只要是包含在索引中的列，那么这个列在记录中的位置（pos），占用存储空间大小（len）和实际值（value）就需要存储到undo日志中；<br/>
<img src="20-undo日志_files/Image [5].png" type="image/png" data-filename="Image.png"/><br/>
<img src="20-undo日志_files/Image [6].png" type="image/png" data-filename="Image.png"/></li>
</ul>
<h3 style="line-height: 160%; box-sizing: content-box; font-weight: 700; font-size: 27px; color: #333;">3-3 update操作对应的undo日志</h3>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">在执行UPDATE语句时，InnoDB对更新主键和不更新主键这两种情况有截然不同的处理方案。</p>
<h4 style="line-height: 160%; box-sizing: content-box; font-size: 20px; color: #333;">3-3-1 不更新主键的情况</h4>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">在不更新主键的情况下，又可以细分为更新的列占用的存储空间不发生变化和发生变化的情况。</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">就地更新（In-place-update）<br/>
更新记录时，对于<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">被更新的每个列</strong>来说，如果更新后的列和更新前的列占用的存储空间都<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">一样大</strong>，那么就可以进行<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">就地更新</strong>，也就是直接在原记录的基础上修改对应列的值。再次强调一边，是每个列在更新前后占用的存储空间一样大，有任何一个被更新的列更新前比更新后占用的存储空间大，或者更新前比更新后占用的存储空间小都不能进行就地更新。比方说现在undo_demo表里还有一条id值为2的记录，它的各个列占用的大小如图所示（因为采用utf8字符集，所以'步枪'这两个字符占用6个字节）：<img src="20-undo日志_files/Image [7].png" type="image/png" data-filename="Image.png"/><br/>
在这个UPDATE语句中，col列从步枪被更新为手枪，前后都占用6个字节，也就是占用的存储空间大小未改变；key1列从M416被更新为P92，也就是从4个字节被更新为3个字节，这就不满足就地更新需要的条件了，所以不能进行就地更新。但是如果UPDATE语句长这样：<br/>
<img src="20-undo日志_files/Image [8].png" type="image/png" data-filename="Image.png"/></p>
</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">先删除旧记录，再插入新记录<br/>
在不更新主键的情况下，如果有任何一个被更新的列更新前和更新后占用的存储空间大小不一致，那么就需要先把这条旧的记录从聚簇索引页面中删除掉，然后再根据更新后列的值创建一条新的记录插入到页面中。<br/>
请注意一下，我们这里所说的删除并不是delete mark操作，而是<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">真正的删除掉</strong>，也就是把这条记录从正常记录链表中移除并<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">加入到垃圾链表</strong>中，并且修改页面中相应的统计信息（比如PAGE_FREE、PAGE_GARBAGE等这些信息）。不过这里做真正删除操作的线程并不是在唠叨DELETE语句中做purge操作时使用的另外专门的线程，而是由<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">用户线程同步执行真正的删除操作</strong>，真正删除之后紧接着就要根据各个列更新后的值创建的新记录插入。<br/>
这里如果新创建的记录占用的存储空间大小不超过旧记录占用的空间，那么可以直接重用被加入到垃圾链表中的旧记录所占用的存储空间，否则的话需要在页面中新申请一段空间以供新记录使用，如果本页面内已经没有可用的空间的话，那就需要进行页面分裂操作，然后再插入新记录。</p>
</li>
</ul>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">针对UPDATE不更新主键的情况（包括上边所说的就地更新和先删除旧记录再插入新记录），设计InnoDB的大叔们设计了一种类型为TRX_UNDO_UPD_EXIST_REC的undo日志，它的完整结构如下：<br/>
<img src="20-undo日志_files/1 [12].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">其实大部分属性和我们介绍过的TRX_UNDO_DEL_MARK_REC类型的undo日志是类似的，不过还是要注意这么几点：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;"><strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">n_updated</strong>属性表示本条UPDATE语句执行后将有几个列被更新，后边跟着的&lt;pos, old_len, old_value&gt;分别表示被更新列在记录中的位置、更新前该列占用的存储空间大小、更新前该列的真实值。</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">如果在UPDATE语句中更新的列包含索引列，那么也会添加索引列各列信息这个部分，否则的话是不会添加这个部分的。</li>
</ul>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">现在继续在上边那个事务id为100的事务中更新一条记录，比如我们把id为2的那条记录更新一下：<img src="20-undo日志_files/Image [9].png" type="image/png" data-filename="Image.png"/><br/>
这个UPDATE语句更新的列大小都没有改动，所以可以采用<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">就地更新</strong>的方式来执行，在真正改动页面记录时，会先记录一条类型为TRX_UNDO_UPD_EXIST_REC的undo日志，长这样：<br/>
<img src="20-undo日志_files/1 [13].jpg" type="image/jpeg" data-filename="1.jpg"/></p>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">对照着这个图我们注意一下这几个地方：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">因为这条undo日志是id为100的事务中产生的第4条undo日志，所以它对应的undo no就是3；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">这条日志的roll_pointer指向undo no为1的那条日志，也就是插入主键值为2的记录时产生的那条undo日志，也就是最近一次对该记录做改动时产生的undo日志；</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">由于本条UPDATE语句中更新了索引列key1的值，所以需要记录一下索引列各列信息部分，也就是把主键和key1列更新前的信息填入。</li>
</ul>
<h4 style="line-height: 160%; box-sizing: content-box; font-size: 20px; color: #333;">3-3-2 更新主键的情况</h4>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">在聚簇索引中，记录是按照主键值的大小连成了一个单向链表的，如果我们更新了某条记录的主键值，意味着这条记录在聚簇索引中的位置将会发生改变，比如你将记录的主键值从1更新为10000，如果还有非常多的记录的主键值分布在1 ~ 10000之间的话，那么这两条记录在聚簇索引中就有可能离得非常远，甚至中间隔了好多个页面。针对UPDATE语句中更新了记录主键值的这种情况，InnoDB在聚簇索引中分了两步处理：</p>
<ul style="line-height: 160%; box-sizing: content-box; display: block; list-style-type: disc; padding-left: 30px; margin: 6px 0 10px; color: #333;">
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">将旧记录进行<strong style="line-height: 160%; box-sizing: content-box; font-weight: 700;">delete mark</strong>操作<br/>
高能注意：**这里是delete mark操作！这里是delete mark操作！这里是delete mark操作！**也就是说在UPDATE语句所在的事务提交前，对旧记录只做一个delete mark操作，在事务提交后才由专门的线程做purge操作，把它加入到垃圾链表中。这里一定要和我们上边所说的在不更新记录主键值时，先真正删除旧记录，再插入新记录的方式区分开！<br/>
<img src="20-undo日志_files/Image [10].png" type="image/png" data-filename="Image.png"/></p>
</li>
<li style="line-height: 160%; box-sizing: content-box; position: relative;">
<p style="line-height: 160%; box-sizing: content-box; color: #333; margin: 0;">根据更新后各列的值创建一条新记录，并将其插入到聚簇索引中（需重新定位插入的位置）。<br/>
由于更新后的记录主键值发生了改变，所以需要重新从聚簇索引中定位这条记录所在的位置，然后把它插进去。</p>
</li>
</ul>
<p style="line-height: 160%; box-sizing: content-box; margin: 10px 0; color: #333;">针对UPDATE语句更新记录主键值的这种情况，在对该记录进行delete mark操作前，会记录一条类型为TRX_UNDO_DEL_MARK_REC的undo日志；之后插入新记录时，会记录一条类型为TRX_UNDO_INSERT_REC的undo日志，也就是说每对一条记录的主键值做改动时，会记录2条undo日志。</p>
</div><center style="display:none !important;visibility:collapse !important;height:0 !important;white-space:nowrap;width:100%;overflow:hidden">%23%23%201%20%E4%BA%8B%E5%8A%A1%E5%9B%9E%E6%BB%9A%E7%9A%84%E9%9C%80%E6%B1%82%0A%0A%E4%BA%8B%E5%8A%A1%E9%9C%80%E8%A6%81%E4%BF%9D%E8%AF%81%E5%8E%9F%E5%AD%90%E6%80%A7%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E4%BA%8B%E5%8A%A1%E4%B8%AD%E7%9A%84%E6%93%8D%E4%BD%9C%E8%A6%81%E4%B9%88%E5%85%A8%E9%83%A8%E5%AE%8C%E6%88%90%EF%BC%8C%E8%A6%81%E4%B9%88%E4%BB%80%E4%B9%88%E4%B9%9F%E4%B8%8D%E5%81%9A%E3%80%82%E4%BD%86%E6%98%AF%E5%81%8F%E5%81%8F%E6%9C%89%E6%97%B6%E5%80%99%E4%BA%8B%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%88%B0%E4%B8%80%E5%8D%8A%E4%BC%9A%E5%87%BA%E7%8E%B0%E4%B8%80%E4%BA%9B%E6%83%85%E5%86%B5%EF%BC%8C%E6%AF%94%E5%A6%82%EF%BC%9A%0A%0A*%20%E6%83%85%E5%86%B5%E4%B8%80%EF%BC%9A%E4%BA%8B%E5%8A%A1%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%8F%AF%E8%83%BD%E9%81%87%E5%88%B0%E5%90%84%E7%A7%8D%E9%94%99%E8%AF%AF%EF%BC%8C%E6%AF%94%E5%A6%82%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9C%AC%E8%BA%AB%E7%9A%84%E9%94%99%E8%AF%AF%EF%BC%8C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%94%99%E8%AF%AF%EF%BC%8C%E7%94%9A%E8%87%B3%E6%98%AF%E7%AA%81%E7%84%B6%E6%96%AD%E7%94%B5%E5%AF%BC%E8%87%B4%E7%9A%84%E9%94%99%E8%AF%AF%EF%BC%9B%0A*%20%E6%83%85%E5%86%B5%E4%BA%8C%EF%BC%9A%E7%A8%8B%E5%BA%8F%E5%91%98%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%BA%8B%E5%8A%A1%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E4%B8%AD%E6%89%8B%E5%8A%A8%E8%BE%93%E5%85%A5ROLLBACK%E8%AF%AD%E5%8F%A5%E7%BB%93%E6%9D%9F%E5%BD%93%E5%89%8D%E7%9A%84%E4%BA%8B%E5%8A%A1%E7%9A%84%E6%89%A7%E8%A1%8C%EF%BC%9B%0A%0A%E8%BF%99%E4%B8%A4%E7%A7%8D%E6%83%85%E5%86%B5%E9%83%BD%E4%BC%9A%E5%AF%BC%E8%87%B4%E4%BA%8B%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%88%B0%E4%B8%80%E5%8D%8A%E5%B0%B1%E7%BB%93%E6%9D%9F%EF%BC%8C%E4%BD%86%E6%98%AF%E4%BA%8B%E5%8A%A1%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%8F%AF%E8%83%BD%E5%B7%B2%E7%BB%8F%E4%BF%AE%E6%94%B9%E4%BA%86%E5%BE%88%E5%A4%9A%E4%B8%9C%E8%A5%BF%EF%BC%8C%E4%B8%BA%E4%BA%86%E4%BF%9D%E8%AF%81%E4%BA%8B%E5%8A%A1%E7%9A%84%E5%8E%9F%E5%AD%90%E6%80%A7%EF%BC%8C%E9%9C%80%E8%A6%81%E6%8A%8A%E4%B8%9C%E8%A5%BF%E6%94%B9%E5%9B%9E%E5%8E%9F%E5%85%88%E7%9A%84%E6%A0%B7%E5%AD%90%EF%BC%8C%E8%BF%99%E4%B8%AA%E8%BF%87%E7%A8%8B%E5%B0%B1%E7%A7%B0%E4%B9%8B%E4%B8%BA**%E5%9B%9E%E6%BB%9A**%EF%BC%88%E8%8B%B1%E6%96%87%E5%90%8D%EF%BC%9A**rollback**%EF%BC%89%EF%BC%8C%E8%BF%99%E6%A0%B7%E5%B0%B1%E5%8F%AF%E4%BB%A5%E9%80%A0%E6%88%90%E4%B8%80%E4%B8%AA%E5%81%87%E8%B1%A1%EF%BC%9A**%E8%BF%99%E4%B8%AA%E4%BA%8B%E5%8A%A1%E7%9C%8B%E8%B5%B7%E6%9D%A5%E4%BB%80%E4%B9%88%E9%83%BD%E6%B2%A1%E5%81%9A%EF%BC%8C%E6%89%80%E4%BB%A5%E7%AC%A6%E5%90%88%E5%8E%9F%E5%AD%90%E6%80%A7%E8%A6%81%E6%B1%82%E3%80%82**%0A%0A%E9%82%A3%E4%B9%88%E5%9C%A8%E8%A6%81%E5%AF%B9%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%81%9A%E6%94%B9%E5%8A%A8%E6%97%B6%EF%BC%88%E8%BF%99%E9%87%8C%E7%9A%84%E6%94%B9%E5%AE%9A%E5%8F%AF%E4%BB%A5%E6%8C%87INSERT%E3%80%81DELETE%E3%80%81UPDATE%EF%BC%89%EF%BC%8C%E9%9C%80%E8%A6%81%E7%95%99%E4%B8%80%E6%89%8B%E2%80%94%E2%80%94**%E6%8A%8A%E5%9B%9E%E6%BB%9A%E6%97%B6%E6%89%80%E9%9C%80%E7%9A%84%E4%B8%9C%E8%A5%BF%E9%83%BD%E7%BB%99%E8%AE%B0%E4%B8%8B%E6%9D%A5**%E3%80%82%E6%AF%94%E5%A6%82%E8%AF%B4%EF%BC%9A%0A%0A*%20%E6%8F%92%E5%85%A5%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E6%97%B6%EF%BC%8C%E8%87%B3%E5%B0%91%E8%A6%81%E6%8A%8A%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%9A%84%E4%B8%BB%E9%94%AE%E5%80%BC%E8%AE%B0%E4%B8%8B%E6%9D%A5%EF%BC%8C%E4%B9%8B%E5%90%8E%E5%9B%9E%E6%BB%9A%E7%9A%84%E6%97%B6%E5%80%99%E5%8F%AA%E9%9C%80%E8%A6%81%E6%8A%8A%E8%BF%99%E4%B8%AA%E4%B8%BB%E9%94%AE%E5%80%BC%E5%AF%B9%E5%BA%94%E7%9A%84%E8%AE%B0%E5%BD%95%E5%88%A0%E6%8E%89%EF%BC%9B%0A*%20%E5%88%A0%E9%99%A4%E4%BA%86%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E8%87%B3%E5%B0%91%E8%A6%81%E6%8A%8A%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E4%B8%AD%E7%9A%84%E5%86%85%E5%AE%B9%E9%83%BD%E8%AE%B0%E4%B8%8B%E6%9D%A5%EF%BC%8C%E8%BF%99%E6%A0%B7%E4%B9%8B%E5%90%8E%E5%9B%9E%E6%BB%9A%E6%97%B6%E5%86%8D%E6%8A%8A%E7%94%B1%E8%BF%99%E4%BA%9B%E5%86%85%E5%AE%B9%E7%BB%84%E6%88%90%E7%9A%84%E8%AE%B0%E5%BD%95%E6%8F%92%E5%85%A5%E5%88%B0%E8%A1%A8%E4%B8%AD%EF%BC%9B%0A*%20%E4%BF%AE%E6%94%B9%E4%BA%86%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E8%87%B3%E5%B0%91%E8%A6%81%E6%8A%8A%E4%BF%AE%E6%94%B9%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%89%8D%E7%9A%84%E6%97%A7%E5%80%BC%E9%83%BD%E8%AE%B0%E5%BD%95%E4%B8%8B%E6%9D%A5%EF%BC%8C%E8%BF%99%E6%A0%B7%E4%B9%8B%E5%90%8E%E5%9B%9E%E6%BB%9A%E6%97%B6%E5%86%8D%E6%8A%8A%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E6%9B%B4%E6%96%B0%E4%B8%BA%E6%97%A7%E5%80%BC%E3%80%82%0A%0AMySQL%E6%8A%8A%E8%BF%99%E4%BA%9B%E4%B8%BA%E4%BA%86%E5%9B%9E%E6%BB%9A%E8%80%8C%E8%AE%B0%E5%BD%95%E7%9A%84%E6%95%B0%E6%8D%AE%E7%A7%B0%E4%B9%8B%E4%B8%BA**%E6%92%A4%E9%94%80%E6%97%A5%E5%BF%97**%EF%BC%8C%E8%8B%B1%E6%96%87%E5%90%8D**undo%20log**%E3%80%82%0A%0A%23%23%202%20%E4%BA%8B%E5%8A%A1ID%0A%23%23%23%202-1%20%E7%BB%99%E4%BA%8B%E5%8A%A1%E5%88%86%E9%85%8Did%E7%9A%84%E6%97%B6%E6%9C%BA%0A%0A%E5%A6%82%E6%9E%9C%E6%9F%90%E4%B8%AA%E4%BA%8B%E5%8A%A1%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%AF%B9%E6%9F%90%E4%B8%AA%E8%A1%A8%E6%89%A7%E8%A1%8C%E4%BA%86%E5%A2%9E%E3%80%81%E5%88%A0%E3%80%81%E6%94%B9%E6%93%8D%E4%BD%9C%EF%BC%8C%E9%82%A3%E4%B9%88InnoDB%E5%AD%98%E5%82%A8%E5%BC%95%E6%93%8E%E5%B0%B1%E4%BC%9A%E7%BB%99%E5%AE%83%E5%88%86%E9%85%8D%E4%B8%80%E4%B8%AA%E7%8B%AC%E4%B8%80%E6%97%A0%E4%BA%8C%E7%9A%84%E4%BA%8B%E5%8A%A1id%EF%BC%8C%E5%88%86%E9%85%8D%E6%96%B9%E5%BC%8F%E5%A6%82%E4%B8%8B%EF%BC%9A%0A%0A*%20%E5%AF%B9%E4%BA%8E**%E5%8F%AA%E8%AF%BB%E4%BA%8B%E5%8A%A1**%E6%9D%A5%E8%AF%B4%EF%BC%8C%E5%8F%AA%E6%9C%89%E5%9C%A8%E5%AE%83%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%AF%B9%E6%9F%90%E4%B8%AA**%E7%94%A8%E6%88%B7%E5%88%9B%E5%BB%BA%E7%9A%84%E4%B8%B4%E6%97%B6%E8%A1%A8**%E6%89%A7%E8%A1%8C%E5%A2%9E%E3%80%81%E5%88%A0%E3%80%81%E6%94%B9%E6%93%8D%E4%BD%9C%E6%97%B6%E6%89%8D%E4%BC%9A%E4%B8%BA%E8%BF%99%E4%B8%AA%E4%BA%8B%E5%8A%A1%E5%88%86%E9%85%8D%E4%B8%80%E4%B8%AA%E4%BA%8B%E5%8A%A1id%EF%BC%8C%E5%90%A6%E5%88%99%E7%9A%84%E8%AF%9D%E6%98%AF%E4%B8%8D%E5%88%86%E9%85%8D%E4%BA%8B%E5%8A%A1id%E7%9A%84%EF%BC%9B%0A%E5%89%8D%E8%BE%B9%E8%AF%B4%E8%BF%87%E5%AF%B9%E6%9F%90%E4%B8%AA%E6%9F%A5%E8%AF%A2%E8%AF%AD%E5%8F%A5%E6%89%A7%E8%A1%8CEXPLAIN%E5%88%86%E6%9E%90%E5%AE%83%E7%9A%84%E6%9F%A5%E8%AF%A2%E8%AE%A1%E5%88%92%E6%97%B6%EF%BC%8C%E6%9C%89%E6%97%B6%E5%80%99%E5%9C%A8Extra%E5%88%97%E4%BC%9A%E7%9C%8B%E5%88%B0Using%20temporary%E7%9A%84%E6%8F%90%E7%A4%BA%EF%BC%8C%E8%BF%99%E4%B8%AA%E8%A1%A8%E6%98%8E%E5%9C%A8%E6%89%A7%E8%A1%8C%E8%AF%A5%E6%9F%A5%E8%AF%A2%E8%AF%AD%E5%8F%A5%E6%97%B6%E4%BC%9A%E7%94%A8%E5%88%B0%E5%86%85%E9%83%A8%E4%B8%B4%E6%97%B6%E8%A1%A8%E3%80%82%E8%BF%99%E4%B8%AA%E6%89%80%E8%B0%93%E7%9A%84%E5%86%85%E9%83%A8%E4%B8%B4%E6%97%B6%E8%A1%A8%E5%92%8C%E6%88%91%E4%BB%AC%E6%89%8B%E5%8A%A8%E7%94%A8CREATE%20TEMPORARY%20TABLE%E5%88%9B%E5%BB%BA%E7%9A%84%E7%94%A8%E6%88%B7%E4%B8%B4%E6%97%B6%E8%A1%A8%E5%B9%B6%E4%B8%8D%E4%B8%80%E6%A0%B7%EF%BC%8C%E5%9C%A8%E4%BA%8B%E5%8A%A1%E5%9B%9E%E6%BB%9A%E6%97%B6%E5%B9%B6%E4%B8%8D%E9%9C%80%E8%A6%81%E6%8A%8A%E6%89%A7%E8%A1%8CSELECT%E8%AF%AD%E5%8F%A5%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%94%A8%E5%88%B0%E7%9A%84%E5%86%85%E9%83%A8%E4%B8%B4%E6%97%B6%E8%A1%A8%E4%B9%9F%E5%9B%9E%E6%BB%9A%EF%BC%8C%E5%9C%A8%E6%89%A7%E8%A1%8CSELECT%E8%AF%AD%E5%8F%A5%E7%94%A8%E5%88%B0%E5%86%85%E9%83%A8%E4%B8%B4%E6%97%B6%E8%A1%A8%E6%97%B6%E5%B9%B6%E4%B8%8D%E4%BC%9A%E4%B8%BA%E5%AE%83%E5%88%86%E9%85%8D%E4%BA%8B%E5%8A%A1id%E3%80%82%0A%0A*%20%E5%AF%B9%E4%BA%8E**%E8%AF%BB%E5%86%99%E4%BA%8B%E5%8A%A1**%E6%9D%A5%E8%AF%B4%EF%BC%8C%E5%8F%AA%E6%9C%89%E5%9C%A8%E5%AE%83%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%AF%B9%E6%9F%90%E4%B8%AA%E8%A1%A8%EF%BC%88%E5%8C%85%E6%8B%AC%E7%94%A8%E6%88%B7%E5%88%9B%E5%BB%BA%E7%9A%84%E4%B8%B4%E6%97%B6%E8%A1%A8%EF%BC%89%E6%89%A7%E8%A1%8C%E5%A2%9E%E3%80%81%E5%88%A0%E3%80%81%E6%94%B9%E6%93%8D%E4%BD%9C%E6%97%B6%E6%89%8D%E4%BC%9A%E4%B8%BA%E8%BF%99%E4%B8%AA%E4%BA%8B%E5%8A%A1%E5%88%86%E9%85%8D%E4%B8%80%E4%B8%AA%E4%BA%8B%E5%8A%A1id%EF%BC%8C%E5%90%A6%E5%88%99%E7%9A%84%E8%AF%9D%E4%B9%9F%E6%98%AF%E4%B8%8D%E5%88%86%E9%85%8D%E4%BA%8B%E5%8A%A1id%E7%9A%84%EF%BC%9B%0A%0A%23%23%23%202-2%20%E4%BA%8B%E5%8A%A1id%E7%9A%84%E7%94%9F%E6%88%90%0A%0A%E4%BA%8B%E5%8A%A1id%E7%9A%84%E5%88%86%E9%85%8D%E7%AD%96%E7%95%A5%E5%92%8C%E6%88%91%E4%BB%AC%E5%89%8D%E8%BE%B9%E6%8F%90%E5%88%B0%E7%9A%84%E5%AF%B9%E9%9A%90%E8%97%8F%E5%88%97row_id%EF%BC%88%E5%BD%93%E7%94%A8%E6%88%B7%E6%B2%A1%E6%9C%89%E4%B8%BA%E8%A1%A8%E5%88%9B%E5%BB%BA%E4%B8%BB%E9%94%AE%E5%92%8CUNIQUE%E9%94%AE%E6%97%B6InnoDB%E8%87%AA%E5%8A%A8%E5%88%9B%E5%BB%BA%E7%9A%84%E5%88%97%EF%BC%89%E7%9A%84%E5%88%86%E9%85%8D%E7%AD%96%E7%95%A5%E5%A4%A7%E6%8A%B5%E7%9B%B8%E5%90%8C%EF%BC%8C%E5%85%B7%E4%BD%93%E7%AD%96%E7%95%A5%E5%A6%82%E4%B8%8B%EF%BC%9A%0A%0A*%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BC%9A%E5%9C%A8%E5%86%85%E5%AD%98%E4%B8%AD%E7%BB%B4%E6%8A%A4%E4%B8%80%E4%B8%AA%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%EF%BC%8C%E6%AF%8F%E5%BD%93%E9%9C%80%E8%A6%81%E4%B8%BA%E6%9F%90%E4%B8%AA%E4%BA%8B%E5%8A%A1%E5%88%86%E9%85%8D%E4%B8%80%E4%B8%AA%E4%BA%8B%E5%8A%A1id%E6%97%B6%EF%BC%8C%E5%B0%B1%E4%BC%9A%E6%8A%8A%E8%AF%A5%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC%E5%BD%93%E4%BD%9C%E4%BA%8B%E5%8A%A1id%E5%88%86%E9%85%8D%E7%BB%99%E8%AF%A5%E4%BA%8B%E5%8A%A1%EF%BC%8C%E5%B9%B6%E4%B8%94%E6%8A%8A%E8%AF%A5%E5%8F%98%E9%87%8F%E8%87%AA%E5%A2%9E1%EF%BC%9B%0A*%20%E6%AF%8F%E5%BD%93%E8%BF%99%E4%B8%AA%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC%E4%B8%BA256%E7%9A%84%E5%80%8D%E6%95%B0%E6%97%B6%EF%BC%8C%E5%B0%B1%E4%BC%9A%E5%B0%86%E8%AF%A5%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC%E5%88%B7%E6%96%B0%E5%88%B0%E7%B3%BB%E7%BB%9F%E8%A1%A8%E7%A9%BA%E9%97%B4%E7%9A%84**%E9%A1%B5%E5%8F%B7%E4%B8%BA5**%E7%9A%84%E9%A1%B5%E9%9D%A2%E4%B8%AD%E4%B8%80%E4%B8%AA%E7%A7%B0%E4%B9%8B%E4%B8%BA**Max%20Trx%20ID**%E7%9A%84%E5%B1%9E%E6%80%A7%E5%A4%84%EF%BC%8C%E8%BF%99%E4%B8%AA%E5%B1%9E%E6%80%A7%E5%8D%A0%E7%94%A88%E4%B8%AA%E5%AD%97%E8%8A%82%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%EF%BC%9B%0A*%20%E5%BD%93%E7%B3%BB%E7%BB%9F%E4%B8%8B%E4%B8%80%E6%AC%A1%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E6%97%B6%EF%BC%8C%E4%BC%9A%E5%B0%86%E4%B8%8A%E8%BE%B9%E6%8F%90%E5%88%B0%E7%9A%84Max%20Trx%20ID%E5%B1%9E%E6%80%A7%E5%8A%A0%E8%BD%BD%E5%88%B0%E5%86%85%E5%AD%98%E4%B8%AD%EF%BC%8C%E5%B0%86%E8%AF%A5%E5%80%BC%E5%8A%A0%E4%B8%8A256%E4%B9%8B%E5%90%8E%E8%B5%8B%E5%80%BC%E7%BB%99%E6%88%91%E4%BB%AC%E5%89%8D%E8%BE%B9%E6%8F%90%E5%88%B0%E7%9A%84%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%EF%BC%88%E5%9B%A0%E4%B8%BA%E5%9C%A8%E4%B8%8A%E6%AC%A1%E5%85%B3%E6%9C%BA%E6%97%B6%E8%AF%A5%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC%E5%8F%AF%E8%83%BD%E5%A4%A7%E4%BA%8EMax%20Trx%20ID%E5%B1%9E%E6%80%A7%E5%80%BC%EF%BC%89%EF%BC%9B%0A%0A%E8%BF%99%E6%A0%B7%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BF%9D%E8%AF%81%E6%95%B4%E4%B8%AA%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%88%86%E9%85%8D%E7%9A%84%E4%BA%8B%E5%8A%A1id%E5%80%BC%E6%98%AF%E4%B8%80%E4%B8%AA%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97%E3%80%82%E5%85%88%E8%A2%AB%E5%88%86%E9%85%8Did%E7%9A%84%E4%BA%8B%E5%8A%A1%E5%BE%97%E5%88%B0%E7%9A%84%E6%98%AF%E8%BE%83%E5%B0%8F%E7%9A%84%E4%BA%8B%E5%8A%A1id%EF%BC%8C%E5%90%8E%E8%A2%AB%E5%88%86%E9%85%8Did%E7%9A%84%E4%BA%8B%E5%8A%A1%E5%BE%97%E5%88%B0%E7%9A%84%E6%98%AF%E8%BE%83%E5%A4%A7%E7%9A%84%E4%BA%8B%E5%8A%A1id%E3%80%82%0A%0A%23%23%23%202-3%20trx_id%E9%9A%90%E8%97%8F%E5%88%97%0A%0A%E5%9C%A8InnoDB%E8%AE%B0%E5%BD%95%E8%A1%8C%E6%A0%BC%E5%BC%8F%E7%9A%84%E6%97%B6%E5%80%99%E9%87%8D%E7%82%B9%E5%BC%BA%E8%B0%83%E8%BF%87%EF%BC%9A**%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E7%9A%84%E8%AE%B0%E5%BD%95%E9%99%A4%E4%BA%86%E4%BC%9A%E4%BF%9D%E5%AD%98%E5%AE%8C%E6%95%B4%E7%9A%84%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E4%BB%A5%E5%A4%96%EF%BC%8C%E8%80%8C%E4%B8%94%E8%BF%98%E4%BC%9A%E8%87%AA%E5%8A%A8%E6%B7%BB%E5%8A%A0%E5%90%8D%E4%B8%BAtrx_id%E3%80%81roll_pointer%E7%9A%84%E9%9A%90%E8%97%8F%E5%88%97%EF%BC%8C%E5%A6%82%E6%9E%9C%E7%94%A8%E6%88%B7%E6%B2%A1%E6%9C%89%E5%9C%A8%E8%A1%A8%E4%B8%AD%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%94%AE%E4%BB%A5%E5%8F%8AUNIQUE%E9%94%AE%EF%BC%8C%E8%BF%98%E4%BC%9A%E8%87%AA%E5%8A%A8%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%E5%90%8D%E4%B8%BArow_id%E7%9A%84%E9%9A%90%E8%97%8F%E5%88%97%E3%80%82**%E6%89%80%E4%BB%A5%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%9C%A8%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%9A%84%E7%9C%9F%E5%AE%9E%E7%BB%93%E6%9E%84%E7%9C%8B%E8%B5%B7%E6%9D%A5%E5%B0%B1%E6%98%AF%E8%BF%99%E6%A0%B7%E7%9A%84%EF%BC%9A!%5B5ac6928803c3d5a5d22a77f8e240b86b.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1035%3A0)%0A%E5%85%B6%E4%B8%AD%E7%9A%84trx_id%E5%88%97%E5%85%B6%E5%AE%9E%E8%BF%98%E8%9B%AE%E5%A5%BD%E7%90%86%E8%A7%A3%E7%9A%84%EF%BC%8C%E5%B0%B1%E6%98%AF%E6%9F%90%E4%B8%AA%E5%AF%B9%E8%BF%99%E4%B8%AA%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E8%AE%B0%E5%BD%95%E5%81%9A%E6%94%B9%E5%8A%A8%E7%9A%84%E8%AF%AD%E5%8F%A5%E6%89%80%E5%9C%A8%E7%9A%84%E4%BA%8B%E5%8A%A1%E5%AF%B9%E5%BA%94%E7%9A%84%E4%BA%8B%E5%8A%A1id%E8%80%8C%E5%B7%B2%EF%BC%88%E6%AD%A4%E5%A4%84%E7%9A%84%E6%94%B9%E5%8A%A8%E5%8F%AF%E4%BB%A5%E6%98%AFINSERT%E3%80%81DELETE%E3%80%81UPDATE%E6%93%8D%E4%BD%9C%EF%BC%89%E3%80%82%0A%0A%0A%23%23%203%20undo%E6%97%A5%E5%BF%97%E7%9A%84%E6%A0%BC%E5%BC%8F%0A%0A%E4%B8%BA%E4%BA%86%E5%AE%9E%E7%8E%B0%E4%BA%8B%E5%8A%A1%E7%9A%84**%E5%8E%9F%E5%AD%90%E6%80%A7**%EF%BC%8CInnoDB%E5%AD%98%E5%82%A8%E5%BC%95%E6%93%8E%E5%9C%A8%E5%AE%9E%E9%99%85%E8%BF%9B%E8%A1%8C%E5%A2%9E%E3%80%81%E5%88%A0%E3%80%81%E6%94%B9%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E6%97%B6%EF%BC%8C%E9%83%BD%E9%9C%80%E8%A6%81**%E5%85%88%E6%8A%8A%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E8%AE%B0%E4%B8%8B%E6%9D%A5**%E3%80%82%0A%E4%B8%80%E8%88%AC%E6%AF%8F%E5%AF%B9%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%81%9A%E4%B8%80%E6%AC%A1%E6%94%B9%E5%8A%A8%EF%BC%8C%E5%B0%B1%E5%AF%B9%E5%BA%94%E7%9D%80%E4%B8%80%E6%9D%A1undo%E6%97%A5%E5%BF%97%EF%BC%8C%E4%BD%86%E5%9C%A8%E6%9F%90%E4%BA%9B%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95%E7%9A%84%E6%93%8D%E4%BD%9C%E4%B8%AD%EF%BC%8C%E4%B9%9F%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%AF%B9%E5%BA%94%E7%9D%802%E6%9D%A1undo%E6%97%A5%E5%BF%97%E3%80%82%E4%B8%80%E4%B8%AA%E4%BA%8B%E5%8A%A1%E5%9C%A8%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%8F%AF%E8%83%BD%E6%96%B0%E5%A2%9E%E3%80%81%E5%88%A0%E9%99%A4%E3%80%81%E6%9B%B4%E6%96%B0%E8%8B%A5%E5%B9%B2%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E9%9C%80%E8%A6%81%E8%AE%B0%E5%BD%95%E5%BE%88%E5%A4%9A%E6%9D%A1%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%8C%E8%BF%99%E4%BA%9Bundo%E6%97%A5%E5%BF%97%E4%BC%9A%E8%A2%AB%E4%BB%8E**0%E5%BC%80%E5%A7%8B%E7%BC%96%E5%8F%B7**%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E6%A0%B9%E6%8D%AE%E7%94%9F%E6%88%90%E7%9A%84%E9%A1%BA%E5%BA%8F%E5%88%86%E5%88%AB%E8%A2%AB%E7%A7%B0%E4%B8%BA%E7%AC%AC0%E5%8F%B7undo%E6%97%A5%E5%BF%97%E3%80%81%E7%AC%AC1%E5%8F%B7undo%E6%97%A5%E5%BF%97%E3%80%81...%E3%80%81%E7%AC%ACn%E5%8F%B7undo%E6%97%A5%E5%BF%97%E7%AD%89%EF%BC%8C%E8%BF%99%E4%B8%AA%E7%BC%96%E5%8F%B7%E4%B9%9F%E8%A2%AB%E7%A7%B0%E4%B9%8B%E4%B8%BA**undo%20no**%E3%80%82%0A%0A%0A%E8%BF%99%E4%BA%9Bundo%E6%97%A5%E5%BF%97%E6%98%AF%E8%A2%AB%E8%AE%B0%E5%BD%95%E5%88%B0%E7%B1%BB%E5%9E%8B%E4%B8%BAFIL_PAGE_UNDO_LOG%EF%BC%88%E5%AF%B9%E5%BA%94%E9%A1%B5%E9%9D%A2%E7%B1%BB%E5%9E%8Btype%E7%9A%84%E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6%E6%98%AF0x0002%EF%BC%89%E7%9A%84%E9%A1%B5%E9%9D%A2%E4%B8%AD%E3%80%82%E8%BF%99%E4%BA%9B%E9%A1%B5%E9%9D%A2%E5%8F%AF%E4%BB%A5%E4%BB%8E%E7%B3%BB%E7%BB%9F%E8%A1%A8%E7%A9%BA%E9%97%B4%E4%B8%AD%E5%88%86%E9%85%8D%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E4%BB%8E%E4%B8%80%E7%A7%8D%E4%B8%93%E9%97%A8%E5%AD%98%E6%94%BEundo%E6%97%A5%E5%BF%97%E7%9A%84%E8%A1%A8%E7%A9%BA%E9%97%B4%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E6%89%80%E8%B0%93%E7%9A%84undo%20tablespace%E4%B8%AD%E5%88%86%E9%85%8D%E3%80%82%E4%B8%8D%E8%BF%87%E5%85%B3%E4%BA%8E%E5%A6%82%E4%BD%95%E5%88%86%E9%85%8D%E5%AD%98%E5%82%A8undo%E6%97%A5%E5%BF%97%E7%9A%84%E9%A1%B5%E9%9D%A2%E8%BF%99%E4%B8%AA%E4%BA%8B%E6%83%85%E6%88%91%E4%BB%AC%E7%A8%8D%E5%90%8E%E5%86%8D%E8%AF%B4%EF%BC%8C%E7%8E%B0%E5%9C%A8%E5%85%88%E6%9D%A5%E7%9C%8B%E7%9C%8B%E4%B8%8D%E5%90%8C%E6%93%8D%E4%BD%9C%E9%83%BD%E4%BC%9A%E4%BA%A7%E7%94%9F%E4%BB%80%E4%B9%88%E6%A0%B7%E5%AD%90%E7%9A%84undo%E6%97%A5%E5%BF%97%E5%90%A7%EF%BD%9E%20%E4%B8%BA%E4%BA%86%E6%95%85%E4%BA%8B%E7%9A%84%E9%A1%BA%E5%88%A9%E5%8F%91%E5%B1%95%EF%BC%8C%E6%88%91%E4%BB%AC%E5%85%88%E6%9D%A5%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%90%8D%E4%B8%BAundo_demo%E7%9A%84%E8%A1%A8%EF%BC%9A!%5Be997b891094204b75c190289173fff32.png%5D(en-resource%3A%2F%2Fdatabase%2F1037%3A0)%0A%0A%E8%BF%99%E4%B8%AA%E8%A1%A8%E4%B8%AD%E6%9C%893%E4%B8%AA%E5%88%97%EF%BC%8C%E5%85%B6%E4%B8%ADid%E5%88%97%E6%98%AF%E4%B8%BB%E9%94%AE%EF%BC%8C%E6%88%91%E4%BB%AC%E4%B8%BAkey1%E5%88%97%E5%BB%BA%E7%AB%8B%E4%BA%86%E4%B8%80%E4%B8%AA%E4%BA%8C%E7%BA%A7%E7%B4%A2%E5%BC%95%EF%BC%8Ccol%E5%88%97%E6%98%AF%E4%B8%80%E4%B8%AA%E6%99%AE%E9%80%9A%E7%9A%84%E5%88%97%E3%80%82%E6%88%91%E4%BB%AC%E5%89%8D%E8%BE%B9%E4%BB%8B%E7%BB%8DInnoDB%E7%9A%84%E6%95%B0%E6%8D%AE%E5%AD%97%E5%85%B8%E6%97%B6%E8%AF%B4%E8%BF%87%EF%BC%8C%E6%AF%8F%E4%B8%AA%E8%A1%A8%E9%83%BD%E4%BC%9A%E8%A2%AB%E5%88%86%E9%85%8D%E4%B8%80%E4%B8%AA%E5%94%AF%E4%B8%80%E7%9A%84table%20id%EF%BC%8C%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E7%B3%BB%E7%BB%9F%E6%95%B0%E6%8D%AE%E5%BA%93information_schema%E4%B8%AD%E7%9A%84innodb_sys_tables%E8%A1%A8%E6%9D%A5%E6%9F%A5%E7%9C%8B%E6%9F%90%E4%B8%AA%E8%A1%A8%E5%AF%B9%E5%BA%94%E7%9A%84table%20id%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E7%8E%B0%E5%9C%A8%E6%88%91%E4%BB%AC%E6%9F%A5%E7%9C%8B%E4%B8%80%E4%B8%8Bundo_demo%E5%AF%B9%E5%BA%94%E7%9A%84table%20id%E6%98%AF%E5%A4%9A%E5%B0%91%EF%BC%9A!%5B2a9395c3231bafbaabf2ad5131fca07c.png%5D(en-resource%3A%2F%2Fdatabase%2F1039%3A0)%0A%0A%E4%BB%8E%E6%9F%A5%E8%AF%A2%E7%BB%93%E6%9E%9C%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%87%BA%EF%BC%8Cundo_demo%E8%A1%A8%E5%AF%B9%E5%BA%94%E7%9A%84table%20id%E4%B8%BA138%EF%BC%8C%E5%85%88%E6%8A%8A%E8%BF%99%E4%B8%AA%E5%80%BC%E8%AE%B0%E4%BD%8F%EF%BC%8C%E6%88%91%E4%BB%AC%E5%90%8E%E8%BE%B9%E6%9C%89%E7%94%A8%E3%80%82%0A%0A%23%23%23%203-1%20insert%E6%93%8D%E4%BD%9C%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%0A%0A%E5%89%8D%E8%BE%B9%E8%AF%B4%E8%BF%87%EF%BC%8C%E5%BD%93%E6%88%91%E4%BB%AC%E5%90%91%E8%A1%A8%E4%B8%AD%E6%8F%92%E5%85%A5%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E6%97%B6%E4%BC%9A%E6%9C%89%E4%B9%90%E8%A7%82%E6%8F%92%E5%85%A5%E5%92%8C%E6%82%B2%E8%A7%82%E6%8F%92%E5%85%A5%E7%9A%84%E5%8C%BA%E5%88%86%EF%BC%8C%E4%BD%86%E6%98%AF%E4%B8%8D%E7%AE%A1%E6%80%8E%E4%B9%88%E6%8F%92%E5%85%A5%EF%BC%8C%E6%9C%80%E7%BB%88%E5%AF%BC%E8%87%B4%E7%9A%84%E7%BB%93%E6%9E%9C%E5%B0%B1%E6%98%AF%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E8%A2%AB%E6%94%BE%E5%88%B0%E4%BA%86%E4%B8%80%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%A1%B5%E4%B8%AD%E3%80%82%E5%A6%82%E6%9E%9C%E5%B8%8C%E6%9C%9B%E5%9B%9E%E6%BB%9A%E8%BF%99%E4%B8%AA%E6%8F%92%E5%85%A5%E6%93%8D%E4%BD%9C%EF%BC%8C%E9%82%A3%E4%B9%88%E6%8A%8A%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%88%A0%E9%99%A4%E5%B0%B1%E5%A5%BD%E4%BA%86%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E5%9C%A8%E5%86%99%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E6%97%B6%EF%BC%8C%E4%B8%BB%E8%A6%81%E6%98%AF%E6%8A%8A%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%9A%84%E4%B8%BB%E9%94%AE%E4%BF%A1%E6%81%AF%E8%AE%B0%E4%B8%8A%E3%80%82%E6%89%80%E4%BB%A5%E8%AE%BE%E8%AE%A1InnoDB%E7%9A%84%E5%A4%A7%E5%8F%94%E8%AE%BE%E8%AE%A1%E4%BA%86%E4%B8%80%E4%B8%AA%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_INSERT_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%8C%E5%AE%83%E7%9A%84%E5%AE%8C%E6%95%B4%E7%BB%93%E6%9E%84%E5%A6%82%E4%B8%8B%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%9A!%5Bb100dc26a12192a2e3f7c2a6807fb3c5.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1041%3A0)%0A%0A*%20undo%20no%E5%9C%A8%E4%B8%80%E4%B8%AA%E4%BA%8B%E5%8A%A1%E4%B8%AD%E6%98%AF%E4%BB%8E0%E5%BC%80%E5%A7%8B%E9%80%92%E5%A2%9E%E7%9A%84%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E5%8F%AA%E8%A6%81%E4%BA%8B%E5%8A%A1%E6%B2%A1%E6%8F%90%E4%BA%A4%EF%BC%8C%E6%AF%8F%E7%94%9F%E6%88%90%E4%B8%80%E6%9D%A1undo%E6%97%A5%E5%BF%97%EF%BC%8C%E9%82%A3%E4%B9%88%E8%AF%A5%E6%9D%A1%E6%97%A5%E5%BF%97%E7%9A%84undo%20no%E5%B0%B1%E5%A2%9E1%EF%BC%9B%0A*%20%E5%A6%82%E6%9E%9C%E8%AE%B0%E5%BD%95%E4%B8%AD%E7%9A%84%E4%B8%BB%E9%94%AE%E5%8F%AA%E5%8C%85%E5%90%AB%E4%B8%80%E4%B8%AA%E5%88%97%EF%BC%8C%E9%82%A3%E4%B9%88%E5%9C%A8%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_INSERT_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%E4%B8%AD%E5%8F%AA%E9%9C%80%E8%A6%81%E6%8A%8A%E8%AF%A5%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%E5%92%8C%E7%9C%9F%E5%AE%9E%E5%80%BC%E8%AE%B0%E5%BD%95%E4%B8%8B%E6%9D%A5%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%AE%B0%E5%BD%95%E4%B8%AD%E7%9A%84%E4%B8%BB%E9%94%AE%E5%8C%85%E5%90%AB%E5%A4%9A%E4%B8%AA%E5%88%97%EF%BC%8C%E9%82%A3%E4%B9%88%E6%AF%8F%E4%B8%AA%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%E5%92%8C%E5%AF%B9%E5%BA%94%E7%9A%84%E7%9C%9F%E5%AE%9E%E5%80%BC%E9%83%BD%E9%9C%80%E8%A6%81%E8%AE%B0%E5%BD%95%E4%B8%8B%E6%9D%A5%EF%BC%88%E5%9B%BE%E4%B8%AD%E7%9A%84len%E5%B0%B1%E4%BB%A3%E8%A1%A8%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%EF%BC%8Cvalue%E5%B0%B1%E4%BB%A3%E8%A1%A8%E5%88%97%E7%9A%84%E7%9C%9F%E5%AE%9E%E5%80%BC%EF%BC%89%E3%80%82%0A!%5Beb9ea0a92e545541f316cc9d0d8391e6.png%5D(en-resource%3A%2F%2Fdatabase%2F1043%3A0)%0A%0A%E5%9B%A0%E4%B8%BA%E8%AE%B0%E5%BD%95%E7%9A%84%E4%B8%BB%E9%94%AE%E5%8F%AA%E5%8C%85%E5%90%AB%E4%B8%80%E4%B8%AAid%E5%88%97%EF%BC%8C%E6%89%80%E4%BB%A5%E6%88%91%E4%BB%AC%E5%9C%A8%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E4%B8%AD%E5%8F%AA%E9%9C%80%E8%A6%81%E5%B0%86%E5%BE%85%E6%8F%92%E5%85%A5%E8%AE%B0%E5%BD%95%E7%9A%84id%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E9%95%BF%E5%BA%A6%EF%BC%88id%E5%88%97%E7%9A%84%E7%B1%BB%E5%9E%8B%E4%B8%BAINT%EF%BC%8CINT%E7%B1%BB%E5%9E%8B%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E9%95%BF%E5%BA%A6%E4%B8%BA4%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%89%E5%92%8C%E7%9C%9F%E5%AE%9E%E5%80%BC%E8%AE%B0%E5%BD%95%E4%B8%8B%E6%9D%A5%E3%80%82%E6%9C%AC%E4%BE%8B%E4%B8%AD%E6%8F%92%E5%85%A5%E4%BA%86%E4%B8%A4%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E6%89%80%E4%BB%A5%E4%BC%9A%E4%BA%A7%E7%94%9F%E4%B8%A4%E6%9D%A1%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_INSERT_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%9A%0A%0A*%20%E7%AC%AC%E4%B8%80%E6%9D%A1undo%E6%97%A5%E5%BF%97%E7%9A%84undo%20no%E4%B8%BA0%EF%BC%8C%E8%AE%B0%E5%BD%95%E4%B8%BB%E9%94%AE%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E9%95%BF%E5%BA%A6%E4%B8%BA4%EF%BC%8C%E7%9C%9F%E5%AE%9E%E5%80%BC%E4%B8%BA1%E3%80%82%E7%94%BB%E4%B8%80%E4%B8%AA%E7%A4%BA%E6%84%8F%E5%9B%BE%E5%B0%B1%E6%98%AF%E8%BF%99%E6%A0%B7%EF%BC%9A!%5B2427fae77688e132fd696cf3b3a3835e.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1045%3A0)%0A*%20%E7%AC%AC%E4%BA%8C%E6%9D%A1undo%E6%97%A5%E5%BF%97%E7%9A%84undo%20no%E4%B8%BA1%EF%BC%8C%E8%AE%B0%E5%BD%95%E4%B8%BB%E9%94%AE%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E9%95%BF%E5%BA%A6%E4%B8%BA4%EF%BC%8C%E7%9C%9F%E5%AE%9E%E5%80%BC%E4%B8%BA2%E3%80%82%E7%94%BB%E4%B8%80%E4%B8%AA%E7%A4%BA%E6%84%8F%E5%9B%BE%E5%B0%B1%E6%98%AF%E8%BF%99%E6%A0%B7%EF%BC%88%E4%B8%8E%E7%AC%AC%E4%B8%80%E6%9D%A1undo%E6%97%A5%E5%BF%97%E5%AF%B9%E6%AF%94%EF%BC%8Cundo%20no%E5%92%8C%E4%B8%BB%E9%94%AE%E5%90%84%E5%88%97%E4%BF%A1%E6%81%AF%E6%9C%89%E4%B8%8D%E5%90%8C%EF%BC%89%EF%BC%9A!%5Bdca64ea55a11dd2504374dd3e26a1b6a.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1047%3A0)%0A!%5Bdca64ea55a11dd2504374dd3e26a1b6a.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1047%3A0)%0A%0A%23%23%23%23%20roll_pointer%E9%9A%90%E8%97%8F%E5%88%97%E7%9A%84%E5%90%AB%E4%B9%89%0A%E6%98%AF%E6%97%B6%E5%80%99%E6%8F%AD%E5%BC%80roll_pointer%E7%9A%84%E7%9C%9F%E5%AE%9E%E9%9D%A2%E7%BA%B1%E4%BA%86%EF%BC%8C%E8%BF%99%E4%B8%AA%E5%8D%A0%E7%94%A87%E4%B8%AA%E5%AD%97%E8%8A%82%E7%9A%84%E5%AD%97%E6%AE%B5%E5%85%B6%E5%AE%9E%E4%B8%80%E7%82%B9%E9%83%BD%E4%B8%8D%E7%A5%9E%E7%A7%98%EF%BC%8C%E6%9C%AC%E8%B4%A8%E4%B8%8A%E5%B0%B1%E6%98%AF%E4%B8%80%E4%B8%AA%E6%8C%87%E5%90%91%E8%AE%B0%E5%BD%95%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E7%9A%84%E4%B8%80%E4%B8%AA%E6%8C%87%E9%92%88%E3%80%82%E6%AF%94%E6%96%B9%E8%AF%B4%E6%88%91%E4%BB%AC%E4%B8%8A%E8%BE%B9%E5%90%91undo_demo%E8%A1%A8%E9%87%8C%E6%8F%92%E5%85%A5%E4%BA%862%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E6%AF%8F%E6%9D%A1%E8%AE%B0%E5%BD%95%E9%83%BD%E6%9C%89%E4%B8%8E%E5%85%B6%E5%AF%B9%E5%BA%94%E7%9A%84%E4%B8%80%E6%9D%A1undo%E6%97%A5%E5%BF%97%E3%80%82%E8%AE%B0%E5%BD%95%E8%A2%AB%E5%AD%98%E5%82%A8%E5%88%B0%E4%BA%86%E7%B1%BB%E5%9E%8B%E4%B8%BAFIL_PAGE_INDEX%E7%9A%84%E9%A1%B5%E9%9D%A2%E4%B8%AD%EF%BC%88%E5%B0%B1%E6%98%AF%E6%88%91%E4%BB%AC%E5%89%8D%E8%BE%B9%E4%B8%80%E7%9B%B4%E6%89%80%E8%AF%B4%E7%9A%84%E6%95%B0%E6%8D%AE%E9%A1%B5%EF%BC%89%EF%BC%8Cundo%E6%97%A5%E5%BF%97%E8%A2%AB%E5%AD%98%E6%94%BE%E5%88%B0%E4%BA%86%E7%B1%BB%E5%9E%8B%E4%B8%BAFIL_PAGE_UNDO_LOG%E7%9A%84%E9%A1%B5%E9%9D%A2%E4%B8%AD%E3%80%82%E6%95%88%E6%9E%9C%E5%A6%82%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%9A!%5B40f60d52e8ef48c1d274ce34d92a3cb8.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1049%3A0)%0A%0A%E4%BB%8E%E5%9B%BE%E4%B8%AD%E4%B9%9F%E5%8F%AF%E4%BB%A5%E6%9B%B4%E7%9B%B4%E8%A7%82%E7%9A%84%E7%9C%8B%E5%87%BA%E6%9D%A5%EF%BC%8Croll_pointer%E6%9C%AC%E8%B4%A8%E5%B0%B1%E6%98%AF%E4%B8%80%E4%B8%AA%E6%8C%87%E9%92%88%EF%BC%8C%E6%8C%87%E5%90%91%E8%AE%B0%E5%BD%95%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E3%80%82%E4%B8%8D%E8%BF%87%E8%BF%997%E4%B8%AA%E5%AD%97%E8%8A%82%E7%9A%84roll_pointer%E7%9A%84%E6%AF%8F%E4%B8%80%E4%B8%AA%E5%AD%97%E8%8A%82%E5%85%B7%E4%BD%93%E7%9A%84%E5%90%AB%E4%B9%89%E6%88%91%E4%BB%AC%E5%90%8E%E8%BE%B9%E5%94%A0%E5%8F%A8%E5%AE%8C%E5%A6%82%E4%BD%95%E5%88%86%E9%85%8D%E5%AD%98%E5%82%A8undo%E6%97%A5%E5%BF%97%E7%9A%84%E9%A1%B5%E9%9D%A2%E4%B9%8B%E5%90%8E%E5%86%8D%E5%85%B7%E4%BD%93%E8%AF%B4%E5%93%88%EF%BD%9E%0A%0A%23%23%23%203-2%20delete%E6%93%8D%E4%BD%9C%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%0A%E6%8F%92%E5%85%A5%E5%88%B0%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%9A%84%E8%AE%B0%E5%BD%95%E4%BC%9A%E6%A0%B9%E6%8D%AE%E8%AE%B0%E5%BD%95%E5%A4%B4%E4%BF%A1%E6%81%AF%E4%B8%AD%E7%9A%84next_record%E5%B1%9E%E6%80%A7%E7%BB%84%E6%88%90%E4%B8%80%E4%B8%AA%E5%8D%95%E5%90%91%E9%93%BE%E8%A1%A8%EF%BC%8C%E8%BF%99%E4%B8%AA%E9%93%BE%E8%A1%A8%E6%98%AF**%E6%AD%A3%E5%B8%B8%E8%AE%B0%E5%BD%95%E9%93%BE%E8%A1%A8**%E3%80%82%E8%A2%AB%E5%88%A0%E9%99%A4%E7%9A%84%E8%AE%B0%E5%BD%95%E5%85%B6%E5%AE%9E%E4%B9%9F%E4%BC%9A%E6%A0%B9%E6%8D%AE%E8%AE%B0%E5%BD%95%E5%A4%B4%E4%BF%A1%E6%81%AF%E4%B8%AD%E7%9A%84next_record%E5%B1%9E%E6%80%A7%E7%BB%84%E6%88%90%E4%B8%80%E4%B8%AA%E9%93%BE%E8%A1%A8%EF%BC%8C%E5%8F%AA%E4%B8%8D%E8%BF%87%E8%BF%99%E4%B8%AA%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%AE%B0%E5%BD%95%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%8F%AF%E4%BB%A5%E8%A2%AB%E9%87%8D%E6%96%B0%E5%88%A9%E7%94%A8%EF%BC%8C%E6%89%80%E4%BB%A5%E4%B9%9F%E7%A7%B0%E8%BF%99%E4%B8%AA%E9%93%BE%E8%A1%A8%E4%B8%BA**%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8**%E3%80%82**Page%20Header**%E9%83%A8%E5%88%86%E6%9C%89%E4%B8%80%E4%B8%AA%E7%A7%B0%E4%B9%8B%E4%B8%BA**PAGE_FREE**%E7%9A%84%E5%B1%9E%E6%80%A7%EF%BC%8C%E5%AE%83%E6%8C%87%E5%90%91%E7%94%B1%E8%A2%AB%E5%88%A0%E9%99%A4%E8%AE%B0%E5%BD%95%E7%BB%84%E6%88%90%E7%9A%84%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E5%A4%B4%E8%8A%82%E7%82%B9%E3%80%82%0A%E5%81%87%E8%AE%BE%E6%AD%A4%E5%88%BB%E6%9F%90%E4%B8%AA%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%9A%84%E8%AE%B0%E5%BD%95%E5%88%86%E5%B8%83%E6%83%85%E5%86%B5%E6%98%AF%E8%BF%99%E6%A0%B7%E7%9A%84%EF%BC%9A!%5Baae6840ce7d7f16d905c1ff340624656.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1051%3A0)%0A%0A%E5%81%87%E8%AE%BE%E7%8E%B0%E5%9C%A8%E5%87%86%E5%A4%87%E4%BD%BF%E7%94%A8DELETE%E8%AF%AD%E5%8F%A5%E6%8A%8A%E6%AD%A3%E5%B8%B8%E8%AE%B0%E5%BD%95%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E6%9C%80%E5%90%8E%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%BB%99%E5%88%A0%E9%99%A4%E6%8E%89%EF%BC%8C%E5%85%B6%E5%AE%9E%E8%BF%99%E4%B8%AA%E5%88%A0%E9%99%A4%E7%9A%84%E8%BF%87%E7%A8%8B%E9%9C%80%E8%A6%81%E7%BB%8F%E5%8E%86%E4%B8%A4%E4%B8%AA%E9%98%B6%E6%AE%B5%EF%BC%9A%0A%0A%23%23%23%23%20%E9%98%B6%E6%AE%B5%E4%B8%80%0A%0A%E4%BB%85%E4%BB%85%E5%B0%86%E8%AE%B0%E5%BD%95%E7%9A%84delete_mask%E6%A0%87%E8%AF%86%E4%BD%8D%E8%AE%BE%E7%BD%AE%E4%B8%BA1%EF%BC%8C%E5%85%B6%E4%BB%96%E7%9A%84%E4%B8%8D%E5%81%9A%E4%BF%AE%E6%94%B9%EF%BC%88%E5%85%B6%E5%AE%9E%E4%BC%9A%E4%BF%AE%E6%94%B9%E8%AE%B0%E5%BD%95%E7%9A%84trx_id%E3%80%81roll_pointer%E8%BF%99%E4%BA%9B%E9%9A%90%E8%97%8F%E5%88%97%E7%9A%84%E5%80%BC%EF%BC%89%E3%80%82InnoDB%E6%8A%8A%E8%BF%99%E4%B8%AA%E9%98%B6%E6%AE%B5%E7%A7%B0%E4%B9%8B%E4%B8%BAdelete%20mark%E3%80%82!%5B093f23d5e81d155a24182742c40397d6.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1053%3A0)%0A%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%EF%BC%8C%E6%AD%A3%E5%B8%B8%E8%AE%B0%E5%BD%95%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E6%9C%80%E5%90%8E%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%9A%84**delete_mask**%E5%80%BC%E8%A2%AB%E8%AE%BE%E7%BD%AE%E4%B8%BA**1**%EF%BC%8C%E4%BD%86%E6%98%AF%E5%B9%B6%E6%B2%A1%E6%9C%89%E8%A2%AB%E5%8A%A0%E5%85%A5%E5%88%B0%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8%E3%80%82%E4%B9%9F%E5%B0%B1%E6%98%AF%E6%AD%A4%E6%97%B6%E8%AE%B0%E5%BD%95%E5%A4%84%E4%BA%8E%E4%B8%80%E4%B8%AA**%E4%B8%AD%E9%97%B4%E7%8A%B6%E6%80%81**%E3%80%82%E5%9C%A8%E5%88%A0%E9%99%A4%E8%AF%AD%E5%8F%A5%E6%89%80**%E5%9C%A8%E7%9A%84%E4%BA%8B%E5%8A%A1%E6%8F%90%E4%BA%A4%E4%B9%8B%E5%89%8D%EF%BC%8C%E8%A2%AB%E5%88%A0%E9%99%A4%E7%9A%84%E8%AE%B0%E5%BD%95%E4%B8%80%E7%9B%B4%E9%83%BD%E5%A4%84%E4%BA%8E%E8%BF%99%E7%A7%8D%E6%89%80%E8%B0%93%E7%9A%84%E4%B8%AD%E9%97%B4%E7%8A%B6%E6%80%81**%E3%80%82%0A%0A%0A%23%23%23%23%20%E9%98%B6%E6%AE%B5%E4%BA%8C%0A%E5%BD%93%E8%AF%A5%E5%88%A0%E9%99%A4%E8%AF%AD%E5%8F%A5%E6%89%80**%E5%9C%A8%E7%9A%84%E4%BA%8B%E5%8A%A1%E6%8F%90%E4%BA%A4%E4%B9%8B%E5%90%8E**%EF%BC%8C%E4%BC%9A%E6%9C%89%E4%B8%93%E9%97%A8%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%90%8E%E6%9D%A5%E7%9C%9F%E6%AD%A3%E7%9A%84%E6%8A%8A%E8%AE%B0%E5%BD%95%E5%88%A0%E9%99%A4%E6%8E%89%E3%80%82%E6%89%80%E8%B0%93%E7%9C%9F%E6%AD%A3%E7%9A%84%E5%88%A0%E9%99%A4%E5%B0%B1%E6%98%AF%E6%8A%8A%E8%AF%A5%E8%AE%B0%E5%BD%95**%E4%BB%8E%E6%AD%A3%E5%B8%B8%E8%AE%B0%E5%BD%95%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%A7%BB%E9%99%A4%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%8A%A0%E5%85%A5%E5%88%B0%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8%E4%B8%AD%EF%BC%8C%E7%84%B6%E5%90%8E%E8%BF%98%E8%A6%81%E8%B0%83%E6%95%B4%E4%B8%80%E4%BA%9B%E9%A1%B5%E9%9D%A2%E7%9A%84%E5%85%B6%E4%BB%96%E4%BF%A1%E6%81%AF**%EF%BC%8C%E6%AF%94%E5%A6%82%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%9A%84%E7%94%A8%E6%88%B7%E8%AE%B0%E5%BD%95%E6%95%B0%E9%87%8FPAGE_N_RECS%E3%80%81%E4%B8%8A%E6%AC%A1%E6%8F%92%E5%85%A5%E8%AE%B0%E5%BD%95%E7%9A%84%E4%BD%8D%E7%BD%AEPAGE_LAST_INSERT%E3%80%81%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8%E5%A4%B4%E8%8A%82%E7%82%B9%E7%9A%84%E6%8C%87%E9%92%88PAGE_FREE%E3%80%81%E9%A1%B5%E9%9D%A2%E4%B8%AD%E5%8F%AF%E9%87%8D%E7%94%A8%E7%9A%84%E5%AD%97%E8%8A%82%E6%95%B0%E9%87%8FPAGE_GARBAGE%E3%80%81%E8%BF%98%E6%9C%89%E9%A1%B5%E7%9B%AE%E5%BD%95%E7%9A%84%E4%B8%80%E4%BA%9B%E4%BF%A1%E6%81%AF%E7%AD%89%E7%AD%89%E3%80%82InnoDB%E6%8A%8A%E8%BF%99%E4%B8%AA%E9%98%B6%E6%AE%B5%E7%A7%B0%E4%B9%8B%E4%B8%BA**purge**%E3%80%82%0A%0A%E6%8A%8A%E9%98%B6%E6%AE%B5%E4%BA%8C%E6%89%A7%E8%A1%8C%E5%AE%8C%E4%BA%86%EF%BC%8C%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%B0%B1%E7%AE%97%E6%98%AF%E7%9C%9F%E6%AD%A3%E7%9A%84%E8%A2%AB%E5%88%A0%E9%99%A4%E6%8E%89%E4%BA%86%E3%80%82%E8%BF%99%E6%9D%A1%E5%B7%B2%E5%88%A0%E9%99%A4%E8%AE%B0%E5%BD%95%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E4%B9%9F%E5%8F%AF%E4%BB%A5%E8%A2%AB%E9%87%8D%E6%96%B0%E5%88%A9%E7%94%A8%E4%BA%86%E3%80%82%E7%94%BB%E4%B8%8B%E6%9D%A5%E5%B0%B1%E6%98%AF%E8%BF%99%E6%A0%B7%EF%BC%9A%0A!%5B715d662f577d23587db5319602691c56.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1055%3A0)%0A%0A%E5%AF%B9%E7%85%A7%E7%9D%80%E5%9B%BE%E8%BF%98%E8%A6%81%E6%B3%A8%E6%84%8F%E4%B8%80%E7%82%B9%EF%BC%8C%E5%B0%86%E8%A2%AB%E5%88%A0%E9%99%A4%E8%AE%B0%E5%BD%95%E5%8A%A0%E5%85%A5%E5%88%B0%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8%E6%97%B6%EF%BC%8C%E5%AE%9E%E9%99%85%E4%B8%8A**%E5%8A%A0%E5%85%A5%E5%88%B0%E9%93%BE%E8%A1%A8%E7%9A%84%E5%A4%B4%E8%8A%82%E7%82%B9%E5%A4%84**%EF%BC%8C%E4%BC%9A%E8%B7%9F%E7%9D%80**%E4%BF%AE%E6%94%B9PAGE_FREE%E5%B1%9E%E6%80%A7%E7%9A%84%E5%80%BC**%E3%80%82%0A!%5B637c037588a9c0604f89e2893336904f.png%5D(en-resource%3A%2F%2Fdatabase%2F1057%3A0)%0A%0A%E4%BB%8E%E4%B8%8A%E8%BE%B9%E7%9A%84%E6%8F%8F%E8%BF%B0%E4%B8%AD%E6%88%91%E4%BB%AC%E4%B9%9F%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%87%BA%E6%9D%A5%EF%BC%8C%E5%9C%A8%E5%88%A0%E9%99%A4%E8%AF%AD%E5%8F%A5%E6%89%80%E5%9C%A8%E7%9A%84%E4%BA%8B%E5%8A%A1%E6%8F%90%E4%BA%A4%E4%B9%8B%E5%89%8D%EF%BC%8C%E5%8F%AA%E4%BC%9A%E7%BB%8F%E5%8E%86%E9%98%B6%E6%AE%B5%E4%B8%80%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AFdelete%20mark%E9%98%B6%E6%AE%B5%EF%BC%88%E6%8F%90%E4%BA%A4%E4%B9%8B%E5%90%8E%E5%B0%B1%E4%B8%8D%E7%94%A8%E5%9B%9E%E6%BB%9A%E4%BA%86%EF%BC%8C%E6%89%80%E4%BB%A5%E5%8F%AA%E9%9C%80%E8%80%83%E8%99%91%E5%AF%B9%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C%E7%9A%84%E9%98%B6%E6%AE%B5%E4%B8%80%E5%81%9A%E7%9A%84%E5%BD%B1%E5%93%8D%E8%BF%9B%E8%A1%8C%E5%9B%9E%E6%BB%9A%EF%BC%89%E3%80%82InnoDB%E4%B8%BA%E6%AD%A4%E8%AE%BE%E8%AE%A1%E4%BA%86%E4%B8%80%E7%A7%8D%E7%A7%B0%E4%B9%8B%E4%B8%BA**TRX_UNDO_DEL_MARK_REC%E7%B1%BB%E5%9E%8B**%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%8C%E5%AE%83%E7%9A%84%E5%AE%8C%E6%95%B4%E7%BB%93%E6%9E%84%E5%A6%82%E4%B8%8B%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%9A!%5B5183391739bd39878b58de4324c89768.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1059%3A0)%0A%0A*%20%E5%9C%A8%E5%AF%B9%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E8%BF%9B%E8%A1%8Cdelete%20mark%E6%93%8D%E4%BD%9C%E5%89%8D%EF%BC%8C%E9%9C%80%E8%A6%81%E6%8A%8A%E8%AF%A5%E8%AE%B0%E5%BD%95%E7%9A%84%E6%97%A7%E7%9A%84trx_id%E5%92%8Croll_pointer%E9%9A%90%E8%97%8F%E5%88%97%E7%9A%84%E5%80%BC%E9%83%BD%E7%BB%99%E8%AE%B0%E5%88%B0%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E4%B8%AD%E6%9D%A5%EF%BC%8C%E5%B0%B1%E6%98%AF%E6%88%91%E4%BB%AC%E5%9B%BE%E4%B8%AD%E6%98%BE%E7%A4%BA%E7%9A%84old%20trx_id%E5%92%8Cold%20roll_pointer%E5%B1%9E%E6%80%A7%E3%80%82%E8%BF%99%E6%A0%B7%E6%9C%89%E4%B8%80%E4%B8%AA%E5%A5%BD%E5%A4%84%EF%BC%8C%E9%82%A3%E5%B0%B1%E6%98%AF%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87undo%E6%97%A5%E5%BF%97%E7%9A%84old%20roll_pointer%E6%89%BE%E5%88%B0%E8%AE%B0%E5%BD%95%E5%9C%A8%E4%BF%AE%E6%94%B9%E4%B9%8B%E5%89%8D%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E3%80%82%E6%AF%94%E6%96%B9%E8%AF%B4%E5%9C%A8%E4%B8%80%E4%B8%AA%E4%BA%8B%E5%8A%A1%E4%B8%AD%EF%BC%8C%E6%88%91%E4%BB%AC%E5%85%88%E6%8F%92%E5%85%A5%E4%BA%86%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E7%84%B6%E5%90%8E%E5%8F%88%E6%89%A7%E8%A1%8C%E5%AF%B9%E8%AF%A5%E8%AE%B0%E5%BD%95%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C%EF%BC%8C%E8%BF%99%E4%B8%AA%E8%BF%87%E7%A8%8B%E7%9A%84%E7%A4%BA%E6%84%8F%E5%9B%BE%E5%B0%B1%E6%98%AF%E8%BF%99%E6%A0%B7%EF%BC%9A!%5Bf3b7978a82e8ed064fe1642f2e15941e.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1061%3A0)%0A%E4%BB%8E%E5%9B%BE%E4%B8%AD%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%87%BA%E6%9D%A5%EF%BC%8C%E6%89%A7%E8%A1%8C%E5%AE%8Cdelete%20mark%E6%93%8D%E4%BD%9C%E5%90%8E%EF%BC%8C%E5%AE%83%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E5%92%8CINSERT%E6%93%8D%E4%BD%9C%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E5%B0%B1%E4%B8%B2%E6%88%90%E4%BA%86%E4%B8%80%E4%B8%AA%E9%93%BE%E8%A1%A8%E3%80%82%E8%BF%99%E4%B8%AA%E5%BE%88%E6%9C%89%E6%84%8F%E6%80%9D%E5%95%8A%EF%BC%8C%E8%BF%99%E4%B8%AA%E9%93%BE%E8%A1%A8%E5%B0%B1%E7%A7%B0%E4%B9%8B%E4%B8%BA**%E7%89%88%E6%9C%AC%E9%93%BE**%EF%BC%8C%E7%8E%B0%E5%9C%A8%E8%B2%8C%E4%BC%BC%E7%9C%8B%E4%B8%8D%E5%87%BA%E8%BF%99%E4%B8%AA%E7%89%88%E6%9C%AC%E9%93%BE%E6%9C%89%E5%95%A5%E7%94%A8%EF%BC%8C%E7%AD%89%E6%88%91%E4%BB%AC%E5%86%8D%E5%BE%80%E5%90%8E%E7%9C%8B%E7%9C%8B%EF%BC%8C%E8%AE%B2%E5%AE%8CUPDATE%E6%93%8D%E4%BD%9C%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%E5%90%8E%EF%BC%8C%E8%BF%99%E4%B8%AA%E6%89%80%E8%B0%93%E7%9A%84%E7%89%88%E6%9C%AC%E9%93%BE%E5%B0%B1%E6%85%A2%E6%85%A2%E7%9A%84%E5%B1%95%E7%8E%B0%E5%87%BA%E5%AE%83%E7%9A%84%E7%89%9B%E9%80%BC%E4%B9%8B%E5%A4%84%E4%BA%86%E3%80%82%0A%0A*%20%E4%B8%8E%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_INSERT_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%E4%B8%8D%E5%90%8C%EF%BC%8C%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_DEL_MARK_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%E8%BF%98%E5%A4%9A%E4%BA%86%E4%B8%80%E4%B8%AA**%E7%B4%A2%E5%BC%95%E5%88%97%E5%90%84%E5%88%97%E4%BF%A1%E6%81%AF**%E7%9A%84%E5%86%85%E5%AE%B9%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E5%A6%82%E6%9E%9C%E6%9F%90%E4%B8%AA%E5%88%97%E8%A2%AB%E5%8C%85%E5%90%AB%E5%9C%A8%E6%9F%90%E4%B8%AA%E7%B4%A2%E5%BC%95%E4%B8%AD%EF%BC%8C%E9%82%A3%E4%B9%88%E5%AE%83%E7%9A%84%E7%9B%B8%E5%85%B3%E4%BF%A1%E6%81%AF%E5%B0%B1%E5%BA%94%E8%AF%A5%E8%A2%AB%E8%AE%B0%E5%BD%95%E5%88%B0%E8%BF%99%E4%B8%AA%E7%B4%A2%E5%BC%95%E5%88%97%E5%90%84%E5%88%97%E4%BF%A1%E6%81%AF%E9%83%A8%E5%88%86%EF%BC%8C%E6%89%80%E8%B0%93%E7%9A%84%E7%9B%B8%E5%85%B3%E4%BF%A1%E6%81%AF%E5%8C%85%E6%8B%AC%E8%AF%A5**%E5%88%97%E5%9C%A8%E8%AE%B0%E5%BD%95%E4%B8%AD%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%88%E7%94%A8pos%E8%A1%A8%E7%A4%BA%EF%BC%89**%EF%BC%8C**%E8%AF%A5%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%EF%BC%88%E7%94%A8len%E8%A1%A8%E7%A4%BA%EF%BC%89**%EF%BC%8C**%E8%AF%A5%E5%88%97%E5%AE%9E%E9%99%85%E5%80%BC%EF%BC%88%E7%94%A8value%E8%A1%A8%E7%A4%BA%EF%BC%89**%E3%80%82**%E6%89%80%E4%BB%A5%E7%B4%A2%E5%BC%95%E5%88%97%E5%90%84%E5%88%97%E4%BF%A1%E6%81%AF%E5%AD%98%E5%82%A8%E7%9A%84%E5%86%85%E5%AE%B9%E5%AE%9E%E8%B4%A8%E4%B8%8A%E5%B0%B1%E6%98%AF%3Cpos%2C%20len%2C%20value%3E%E7%9A%84%E4%B8%80%E4%B8%AA%E5%88%97%E8%A1%A8**%E3%80%82%E8%BF%99%E9%83%A8%E5%88%86%E4%BF%A1%E6%81%AF%E4%B8%BB%E8%A6%81%E6%98%AF**%E7%94%A8%E5%9C%A8%E4%BA%8B%E5%8A%A1%E6%8F%90%E4%BA%A4%E5%90%8E**%EF%BC%8C%E5%AF%B9%E8%AF%A5%E4%B8%AD%E9%97%B4%E7%8A%B6%E6%80%81%E8%AE%B0%E5%BD%95%E5%81%9A%E7%9C%9F%E6%AD%A3%E5%88%A0%E9%99%A4%E7%9A%84%E9%98%B6%E6%AE%B5%E4%BA%8C%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF**purge%E9%98%B6%E6%AE%B5**%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%EF%BC%8C%E5%85%B7%E4%BD%93%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%8E%B0%E5%9C%A8%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E5%BF%BD%E7%95%A5%EF%BD%9E%0A%0A%23%23%23%23%20%E5%88%A0%E9%99%A4%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E4%BE%8B%E5%AD%90%0A!%5B4d8334bf5737bb74aa68d575a8d74083.png%5D(en-resource%3A%2F%2Fdatabase%2F1063%3A0)%0A!%5Bd5b4b5f8f4691df94dd2df6131cae1c5.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1065%3A0)%0A%0A%E5%AF%B9%E7%85%A7%E8%BF%99%E4%B8%AA%E5%9B%BE%EF%BC%8C%E6%B3%A8%E6%84%8F%E4%B8%8B%E8%BE%B9%E5%87%A0%E7%82%B9%EF%BC%9A%0A%0A*%20%E5%9B%A0%E4%B8%BA%E8%BF%99%E6%9D%A1undo%E6%97%A5%E5%BF%97%E6%98%AFid%E4%B8%BA100%E7%9A%84%E4%BA%8B%E5%8A%A1%E4%B8%AD%E4%BA%A7%E7%94%9F%E7%9A%84%E7%AC%AC3%E6%9D%A1undo%E6%97%A5%E5%BF%97%EF%BC%8C%E6%89%80%E4%BB%A5%E5%AE%83%E5%AF%B9%E5%BA%94%E7%9A%84undo%20no%E5%B0%B1%E6%98%AF2%EF%BC%9B%0A*%20%E5%9C%A8%E5%AF%B9%E8%AE%B0%E5%BD%95%E5%81%9Adelete%20mark%E6%93%8D%E4%BD%9C%E6%97%B6%EF%BC%8C%E8%AE%B0%E5%BD%95%E7%9A%84trx_id%E9%9A%90%E8%97%8F%E5%88%97%E7%9A%84%E5%80%BC%E6%98%AF100%EF%BC%88%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E5%AF%B9%E8%AF%A5%E8%AE%B0%E5%BD%95%E6%9C%80%E8%BF%91%E7%9A%84%E4%B8%80%E6%AC%A1%E4%BF%AE%E6%94%B9%E5%B0%B1%E5%8F%91%E7%94%9F%E5%9C%A8%E6%9C%AC%E4%BA%8B%E5%8A%A1%E4%B8%AD%EF%BC%89%EF%BC%8C%E6%89%80%E4%BB%A5%E6%8A%8A100%E5%A1%AB%E5%85%A5old%20trx_id%E5%B1%9E%E6%80%A7%E4%B8%AD%E3%80%82%E7%84%B6%E5%90%8E%E6%8A%8A%E8%AE%B0%E5%BD%95%E7%9A%84roll_pointer%E9%9A%90%E8%97%8F%E5%88%97%E7%9A%84%E5%80%BC%E5%8F%96%E5%87%BA%E6%9D%A5%EF%BC%8C%E5%A1%AB%E5%85%A5old%20roll_pointer%E5%B1%9E%E6%80%A7%E4%B8%AD%EF%BC%8C%E8%BF%99%E6%A0%B7%E5%B0%B1%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87old%20roll_pointer%E5%B1%9E%E6%80%A7%E5%80%BC%E6%89%BE%E5%88%B0%E6%9C%80%E8%BF%91%E4%B8%80%E6%AC%A1%E5%AF%B9%E8%AF%A5%E8%AE%B0%E5%BD%95%E5%81%9A%E6%94%B9%E5%8A%A8%E6%97%B6%E4%BA%A7%E7%94%9F%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%9B%0A*%20%E7%94%B1%E4%BA%8Eundo_demo%E8%A1%A8%E4%B8%AD%E6%9C%892%E4%B8%AA%E7%B4%A2%E5%BC%95%EF%BC%9A%E4%B8%80%E4%B8%AA%E6%98%AF%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%EF%BC%8C%E4%B8%80%E4%B8%AA%E6%98%AF%E4%BA%8C%E7%BA%A7%E7%B4%A2%E5%BC%95idx_key1%E3%80%82%E5%8F%AA%E8%A6%81%E6%98%AF%E5%8C%85%E5%90%AB%E5%9C%A8%E7%B4%A2%E5%BC%95%E4%B8%AD%E7%9A%84%E5%88%97%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BF%99%E4%B8%AA%E5%88%97%E5%9C%A8%E8%AE%B0%E5%BD%95%E4%B8%AD%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%88pos%EF%BC%89%EF%BC%8C%E5%8D%A0%E7%94%A8%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%EF%BC%88len%EF%BC%89%E5%92%8C%E5%AE%9E%E9%99%85%E5%80%BC%EF%BC%88value%EF%BC%89%E5%B0%B1%E9%9C%80%E8%A6%81%E5%AD%98%E5%82%A8%E5%88%B0undo%E6%97%A5%E5%BF%97%E4%B8%AD%EF%BC%9B%0A!%5B1e89bc3a442379baf264333c8dd1a3a5.png%5D(en-resource%3A%2F%2Fdatabase%2F1067%3A0)%0A!%5B40176379cd1facee45f33cf17715b388.png%5D(en-resource%3A%2F%2Fdatabase%2F1069%3A0)%0A%0A%23%23%23%203-3%20update%E6%93%8D%E4%BD%9C%E5%AF%B9%E5%BA%94%E7%9A%84undo%E6%97%A5%E5%BF%97%0A%0A%E5%9C%A8%E6%89%A7%E8%A1%8CUPDATE%E8%AF%AD%E5%8F%A5%E6%97%B6%EF%BC%8CInnoDB%E5%AF%B9%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%94%AE%E5%92%8C%E4%B8%8D%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%94%AE%E8%BF%99%E4%B8%A4%E7%A7%8D%E6%83%85%E5%86%B5%E6%9C%89%E6%88%AA%E7%84%B6%E4%B8%8D%E5%90%8C%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E6%A1%88%E3%80%82%0A%0A%23%23%23%23%203-3-1%20%E4%B8%8D%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%94%AE%E7%9A%84%E6%83%85%E5%86%B5%0A%0A%E5%9C%A8%E4%B8%8D%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%94%AE%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E5%8F%88%E5%8F%AF%E4%BB%A5%E7%BB%86%E5%88%86%E4%B8%BA%E6%9B%B4%E6%96%B0%E7%9A%84%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E4%B8%8D%E5%8F%91%E7%94%9F%E5%8F%98%E5%8C%96%E5%92%8C%E5%8F%91%E7%94%9F%E5%8F%98%E5%8C%96%E7%9A%84%E6%83%85%E5%86%B5%E3%80%82%0A%0A*%20%20%E5%B0%B1%E5%9C%B0%E6%9B%B4%E6%96%B0%EF%BC%88In-place-update%EF%BC%89%0A%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95%E6%97%B6%EF%BC%8C%E5%AF%B9%E4%BA%8E**%E8%A2%AB%E6%9B%B4%E6%96%B0%E7%9A%84%E6%AF%8F%E4%B8%AA%E5%88%97**%E6%9D%A5%E8%AF%B4%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%9B%B4%E6%96%B0%E5%90%8E%E7%9A%84%E5%88%97%E5%92%8C%E6%9B%B4%E6%96%B0%E5%89%8D%E7%9A%84%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E9%83%BD**%E4%B8%80%E6%A0%B7%E5%A4%A7**%EF%BC%8C%E9%82%A3%E4%B9%88%E5%B0%B1%E5%8F%AF%E4%BB%A5%E8%BF%9B%E8%A1%8C**%E5%B0%B1%E5%9C%B0%E6%9B%B4%E6%96%B0**%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E7%9B%B4%E6%8E%A5%E5%9C%A8%E5%8E%9F%E8%AE%B0%E5%BD%95%E7%9A%84%E5%9F%BA%E7%A1%80%E4%B8%8A%E4%BF%AE%E6%94%B9%E5%AF%B9%E5%BA%94%E5%88%97%E7%9A%84%E5%80%BC%E3%80%82%E5%86%8D%E6%AC%A1%E5%BC%BA%E8%B0%83%E4%B8%80%E8%BE%B9%EF%BC%8C%E6%98%AF%E6%AF%8F%E4%B8%AA%E5%88%97%E5%9C%A8%E6%9B%B4%E6%96%B0%E5%89%8D%E5%90%8E%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E4%B8%80%E6%A0%B7%E5%A4%A7%EF%BC%8C%E6%9C%89%E4%BB%BB%E4%BD%95%E4%B8%80%E4%B8%AA%E8%A2%AB%E6%9B%B4%E6%96%B0%E7%9A%84%E5%88%97%E6%9B%B4%E6%96%B0%E5%89%8D%E6%AF%94%E6%9B%B4%E6%96%B0%E5%90%8E%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%EF%BC%8C%E6%88%96%E8%80%85%E6%9B%B4%E6%96%B0%E5%89%8D%E6%AF%94%E6%9B%B4%E6%96%B0%E5%90%8E%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%B0%8F%E9%83%BD%E4%B8%8D%E8%83%BD%E8%BF%9B%E8%A1%8C%E5%B0%B1%E5%9C%B0%E6%9B%B4%E6%96%B0%E3%80%82%E6%AF%94%E6%96%B9%E8%AF%B4%E7%8E%B0%E5%9C%A8undo_demo%E8%A1%A8%E9%87%8C%E8%BF%98%E6%9C%89%E4%B8%80%E6%9D%A1id%E5%80%BC%E4%B8%BA2%E7%9A%84%E8%AE%B0%E5%BD%95%EF%BC%8C%E5%AE%83%E7%9A%84%E5%90%84%E4%B8%AA%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%A6%82%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%88%E5%9B%A0%E4%B8%BA%E9%87%87%E7%94%A8utf8%E5%AD%97%E7%AC%A6%E9%9B%86%EF%BC%8C%E6%89%80%E4%BB%A5'%E6%AD%A5%E6%9E%AA'%E8%BF%99%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E5%8D%A0%E7%94%A86%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%89%EF%BC%9A!%5B3e6888222dee5236ecf4bef78fcd9ec0.png%5D(en-resource%3A%2F%2Fdatabase%2F1071%3A0)%0A%E5%9C%A8%E8%BF%99%E4%B8%AAUPDATE%E8%AF%AD%E5%8F%A5%E4%B8%AD%EF%BC%8Ccol%E5%88%97%E4%BB%8E%E6%AD%A5%E6%9E%AA%E8%A2%AB%E6%9B%B4%E6%96%B0%E4%B8%BA%E6%89%8B%E6%9E%AA%EF%BC%8C%E5%89%8D%E5%90%8E%E9%83%BD%E5%8D%A0%E7%94%A86%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%E6%9C%AA%E6%94%B9%E5%8F%98%EF%BC%9Bkey1%E5%88%97%E4%BB%8EM416%E8%A2%AB%E6%9B%B4%E6%96%B0%E4%B8%BAP92%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E4%BB%8E4%E4%B8%AA%E5%AD%97%E8%8A%82%E8%A2%AB%E6%9B%B4%E6%96%B0%E4%B8%BA3%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%8C%E8%BF%99%E5%B0%B1%E4%B8%8D%E6%BB%A1%E8%B6%B3%E5%B0%B1%E5%9C%B0%E6%9B%B4%E6%96%B0%E9%9C%80%E8%A6%81%E7%9A%84%E6%9D%A1%E4%BB%B6%E4%BA%86%EF%BC%8C%E6%89%80%E4%BB%A5%E4%B8%8D%E8%83%BD%E8%BF%9B%E8%A1%8C%E5%B0%B1%E5%9C%B0%E6%9B%B4%E6%96%B0%E3%80%82%E4%BD%86%E6%98%AF%E5%A6%82%E6%9E%9CUPDATE%E8%AF%AD%E5%8F%A5%E9%95%BF%E8%BF%99%E6%A0%B7%EF%BC%9A%0A!%5Bbe45733d4b7ae2e3579ff4adb717d525.png%5D(en-resource%3A%2F%2Fdatabase%2F1073%3A0)%0A%0A*%20%E5%85%88%E5%88%A0%E9%99%A4%E6%97%A7%E8%AE%B0%E5%BD%95%EF%BC%8C%E5%86%8D%E6%8F%92%E5%85%A5%E6%96%B0%E8%AE%B0%E5%BD%95%0A%E5%9C%A8%E4%B8%8D%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%94%AE%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%9C%89%E4%BB%BB%E4%BD%95%E4%B8%80%E4%B8%AA%E8%A2%AB%E6%9B%B4%E6%96%B0%E7%9A%84%E5%88%97%E6%9B%B4%E6%96%B0%E5%89%8D%E5%92%8C%E6%9B%B4%E6%96%B0%E5%90%8E%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%E4%B8%8D%E4%B8%80%E8%87%B4%EF%BC%8C%E9%82%A3%E4%B9%88%E5%B0%B1%E9%9C%80%E8%A6%81%E5%85%88%E6%8A%8A%E8%BF%99%E6%9D%A1%E6%97%A7%E7%9A%84%E8%AE%B0%E5%BD%95%E4%BB%8E%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E9%A1%B5%E9%9D%A2%E4%B8%AD%E5%88%A0%E9%99%A4%E6%8E%89%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E6%A0%B9%E6%8D%AE%E6%9B%B4%E6%96%B0%E5%90%8E%E5%88%97%E7%9A%84%E5%80%BC%E5%88%9B%E5%BB%BA%E4%B8%80%E6%9D%A1%E6%96%B0%E7%9A%84%E8%AE%B0%E5%BD%95%E6%8F%92%E5%85%A5%E5%88%B0%E9%A1%B5%E9%9D%A2%E4%B8%AD%E3%80%82%0A%E8%AF%B7%E6%B3%A8%E6%84%8F%E4%B8%80%E4%B8%8B%EF%BC%8C%E6%88%91%E4%BB%AC%E8%BF%99%E9%87%8C%E6%89%80%E8%AF%B4%E7%9A%84%E5%88%A0%E9%99%A4%E5%B9%B6%E4%B8%8D%E6%98%AFdelete%20mark%E6%93%8D%E4%BD%9C%EF%BC%8C%E8%80%8C%E6%98%AF**%E7%9C%9F%E6%AD%A3%E7%9A%84%E5%88%A0%E9%99%A4%E6%8E%89**%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E6%8A%8A%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E4%BB%8E%E6%AD%A3%E5%B8%B8%E8%AE%B0%E5%BD%95%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%A7%BB%E9%99%A4%E5%B9%B6**%E5%8A%A0%E5%85%A5%E5%88%B0%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8**%E4%B8%AD%EF%BC%8C%E5%B9%B6%E4%B8%94%E4%BF%AE%E6%94%B9%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%9B%B8%E5%BA%94%E7%9A%84%E7%BB%9F%E8%AE%A1%E4%BF%A1%E6%81%AF%EF%BC%88%E6%AF%94%E5%A6%82PAGE_FREE%E3%80%81PAGE_GARBAGE%E7%AD%89%E8%BF%99%E4%BA%9B%E4%BF%A1%E6%81%AF%EF%BC%89%E3%80%82%E4%B8%8D%E8%BF%87%E8%BF%99%E9%87%8C%E5%81%9A%E7%9C%9F%E6%AD%A3%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%B9%B6%E4%B8%8D%E6%98%AF%E5%9C%A8%E5%94%A0%E5%8F%A8DELETE%E8%AF%AD%E5%8F%A5%E4%B8%AD%E5%81%9Apurge%E6%93%8D%E4%BD%9C%E6%97%B6%E4%BD%BF%E7%94%A8%E7%9A%84%E5%8F%A6%E5%A4%96%E4%B8%93%E9%97%A8%E7%9A%84%E7%BA%BF%E7%A8%8B%EF%BC%8C%E8%80%8C%E6%98%AF%E7%94%B1**%E7%94%A8%E6%88%B7%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5%E6%89%A7%E8%A1%8C%E7%9C%9F%E6%AD%A3%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C**%EF%BC%8C%E7%9C%9F%E6%AD%A3%E5%88%A0%E9%99%A4%E4%B9%8B%E5%90%8E%E7%B4%A7%E6%8E%A5%E7%9D%80%E5%B0%B1%E8%A6%81%E6%A0%B9%E6%8D%AE%E5%90%84%E4%B8%AA%E5%88%97%E6%9B%B4%E6%96%B0%E5%90%8E%E7%9A%84%E5%80%BC%E5%88%9B%E5%BB%BA%E7%9A%84%E6%96%B0%E8%AE%B0%E5%BD%95%E6%8F%92%E5%85%A5%E3%80%82%0A%E8%BF%99%E9%87%8C%E5%A6%82%E6%9E%9C%E6%96%B0%E5%88%9B%E5%BB%BA%E7%9A%84%E8%AE%B0%E5%BD%95%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%E4%B8%8D%E8%B6%85%E8%BF%87%E6%97%A7%E8%AE%B0%E5%BD%95%E5%8D%A0%E7%94%A8%E7%9A%84%E7%A9%BA%E9%97%B4%EF%BC%8C%E9%82%A3%E4%B9%88%E5%8F%AF%E4%BB%A5%E7%9B%B4%E6%8E%A5%E9%87%8D%E7%94%A8%E8%A2%AB%E5%8A%A0%E5%85%A5%E5%88%B0%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E6%97%A7%E8%AE%B0%E5%BD%95%E6%89%80%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%EF%BC%8C%E5%90%A6%E5%88%99%E7%9A%84%E8%AF%9D%E9%9C%80%E8%A6%81%E5%9C%A8%E9%A1%B5%E9%9D%A2%E4%B8%AD%E6%96%B0%E7%94%B3%E8%AF%B7%E4%B8%80%E6%AE%B5%E7%A9%BA%E9%97%B4%E4%BB%A5%E4%BE%9B%E6%96%B0%E8%AE%B0%E5%BD%95%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%9C%AC%E9%A1%B5%E9%9D%A2%E5%86%85%E5%B7%B2%E7%BB%8F%E6%B2%A1%E6%9C%89%E5%8F%AF%E7%94%A8%E7%9A%84%E7%A9%BA%E9%97%B4%E7%9A%84%E8%AF%9D%EF%BC%8C%E9%82%A3%E5%B0%B1%E9%9C%80%E8%A6%81%E8%BF%9B%E8%A1%8C%E9%A1%B5%E9%9D%A2%E5%88%86%E8%A3%82%E6%93%8D%E4%BD%9C%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E6%8F%92%E5%85%A5%E6%96%B0%E8%AE%B0%E5%BD%95%E3%80%82%0A%0A%0A%E9%92%88%E5%AF%B9UPDATE%E4%B8%8D%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%94%AE%E7%9A%84%E6%83%85%E5%86%B5%EF%BC%88%E5%8C%85%E6%8B%AC%E4%B8%8A%E8%BE%B9%E6%89%80%E8%AF%B4%E7%9A%84%E5%B0%B1%E5%9C%B0%E6%9B%B4%E6%96%B0%E5%92%8C%E5%85%88%E5%88%A0%E9%99%A4%E6%97%A7%E8%AE%B0%E5%BD%95%E5%86%8D%E6%8F%92%E5%85%A5%E6%96%B0%E8%AE%B0%E5%BD%95%EF%BC%89%EF%BC%8C%E8%AE%BE%E8%AE%A1InnoDB%E7%9A%84%E5%A4%A7%E5%8F%94%E4%BB%AC%E8%AE%BE%E8%AE%A1%E4%BA%86%E4%B8%80%E7%A7%8D%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_UPD_EXIST_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%8C%E5%AE%83%E7%9A%84%E5%AE%8C%E6%95%B4%E7%BB%93%E6%9E%84%E5%A6%82%E4%B8%8B%EF%BC%9A%0A!%5B219e025cc4256a122187a2a2d35ad484.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1075%3A0)%0A%0A%E5%85%B6%E5%AE%9E%E5%A4%A7%E9%83%A8%E5%88%86%E5%B1%9E%E6%80%A7%E5%92%8C%E6%88%91%E4%BB%AC%E4%BB%8B%E7%BB%8D%E8%BF%87%E7%9A%84TRX_UNDO_DEL_MARK_REC%E7%B1%BB%E5%9E%8B%E7%9A%84undo%E6%97%A5%E5%BF%97%E6%98%AF%E7%B1%BB%E4%BC%BC%E7%9A%84%EF%BC%8C%E4%B8%8D%E8%BF%87%E8%BF%98%E6%98%AF%E8%A6%81%E6%B3%A8%E6%84%8F%E8%BF%99%E4%B9%88%E5%87%A0%E7%82%B9%EF%BC%9A%0A%0A*%20**n_updated**%E5%B1%9E%E6%80%A7%E8%A1%A8%E7%A4%BA%E6%9C%AC%E6%9D%A1UPDATE%E8%AF%AD%E5%8F%A5%E6%89%A7%E8%A1%8C%E5%90%8E%E5%B0%86%E6%9C%89%E5%87%A0%E4%B8%AA%E5%88%97%E8%A2%AB%E6%9B%B4%E6%96%B0%EF%BC%8C%E5%90%8E%E8%BE%B9%E8%B7%9F%E7%9D%80%E7%9A%84%3Cpos%2C%20old_len%2C%20old_value%3E%E5%88%86%E5%88%AB%E8%A1%A8%E7%A4%BA%E8%A2%AB%E6%9B%B4%E6%96%B0%E5%88%97%E5%9C%A8%E8%AE%B0%E5%BD%95%E4%B8%AD%E7%9A%84%E4%BD%8D%E7%BD%AE%E3%80%81%E6%9B%B4%E6%96%B0%E5%89%8D%E8%AF%A5%E5%88%97%E5%8D%A0%E7%94%A8%E7%9A%84%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E5%A4%A7%E5%B0%8F%E3%80%81%E6%9B%B4%E6%96%B0%E5%89%8D%E8%AF%A5%E5%88%97%E7%9A%84%E7%9C%9F%E5%AE%9E%E5%80%BC%E3%80%82%0A*%20%E5%A6%82%E6%9E%9C%E5%9C%A8UPDATE%E8%AF%AD%E5%8F%A5%E4%B8%AD%E6%9B%B4%E6%96%B0%E7%9A%84%E5%88%97%E5%8C%85%E5%90%AB%E7%B4%A2%E5%BC%95%E5%88%97%EF%BC%8C%E9%82%A3%E4%B9%88%E4%B9%9F%E4%BC%9A%E6%B7%BB%E5%8A%A0%E7%B4%A2%E5%BC%95%E5%88%97%E5%90%84%E5%88%97%E4%BF%A1%E6%81%AF%E8%BF%99%E4%B8%AA%E9%83%A8%E5%88%86%EF%BC%8C%E5%90%A6%E5%88%99%E7%9A%84%E8%AF%9D%E6%98%AF%E4%B8%8D%E4%BC%9A%E6%B7%BB%E5%8A%A0%E8%BF%99%E4%B8%AA%E9%83%A8%E5%88%86%E7%9A%84%E3%80%82%0A%0A%0A%E7%8E%B0%E5%9C%A8%E7%BB%A7%E7%BB%AD%E5%9C%A8%E4%B8%8A%E8%BE%B9%E9%82%A3%E4%B8%AA%E4%BA%8B%E5%8A%A1id%E4%B8%BA100%E7%9A%84%E4%BA%8B%E5%8A%A1%E4%B8%AD%E6%9B%B4%E6%96%B0%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%EF%BC%8C%E6%AF%94%E5%A6%82%E6%88%91%E4%BB%AC%E6%8A%8Aid%E4%B8%BA2%E7%9A%84%E9%82%A3%E6%9D%A1%E8%AE%B0%E5%BD%95%E6%9B%B4%E6%96%B0%E4%B8%80%E4%B8%8B%EF%BC%9A!%5B7ede9d071b359904c06ad0bee16ec140.png%5D(en-resource%3A%2F%2Fdatabase%2F1077%3A0)%0A%E8%BF%99%E4%B8%AAUPDATE%E8%AF%AD%E5%8F%A5%E6%9B%B4%E6%96%B0%E7%9A%84%E5%88%97%E5%A4%A7%E5%B0%8F%E9%83%BD%E6%B2%A1%E6%9C%89%E6%94%B9%E5%8A%A8%EF%BC%8C%E6%89%80%E4%BB%A5%E5%8F%AF%E4%BB%A5%E9%87%87%E7%94%A8**%E5%B0%B1%E5%9C%B0%E6%9B%B4%E6%96%B0**%E7%9A%84%E6%96%B9%E5%BC%8F%E6%9D%A5%E6%89%A7%E8%A1%8C%EF%BC%8C%E5%9C%A8%E7%9C%9F%E6%AD%A3%E6%94%B9%E5%8A%A8%E9%A1%B5%E9%9D%A2%E8%AE%B0%E5%BD%95%E6%97%B6%EF%BC%8C%E4%BC%9A%E5%85%88%E8%AE%B0%E5%BD%95%E4%B8%80%E6%9D%A1%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_UPD_EXIST_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%8C%E9%95%BF%E8%BF%99%E6%A0%B7%EF%BC%9A%0A!%5B59d0f60841203e67d1620febb0c711f7.jpeg%5D(en-resource%3A%2F%2Fdatabase%2F1079%3A0)%0A%0A%0A%E5%AF%B9%E7%85%A7%E7%9D%80%E8%BF%99%E4%B8%AA%E5%9B%BE%E6%88%91%E4%BB%AC%E6%B3%A8%E6%84%8F%E4%B8%80%E4%B8%8B%E8%BF%99%E5%87%A0%E4%B8%AA%E5%9C%B0%E6%96%B9%EF%BC%9A%0A%0A*%20%E5%9B%A0%E4%B8%BA%E8%BF%99%E6%9D%A1undo%E6%97%A5%E5%BF%97%E6%98%AFid%E4%B8%BA100%E7%9A%84%E4%BA%8B%E5%8A%A1%E4%B8%AD%E4%BA%A7%E7%94%9F%E7%9A%84%E7%AC%AC4%E6%9D%A1undo%E6%97%A5%E5%BF%97%EF%BC%8C%E6%89%80%E4%BB%A5%E5%AE%83%E5%AF%B9%E5%BA%94%E7%9A%84undo%20no%E5%B0%B1%E6%98%AF3%EF%BC%9B%0A*%20%E8%BF%99%E6%9D%A1%E6%97%A5%E5%BF%97%E7%9A%84roll_pointer%E6%8C%87%E5%90%91undo%20no%E4%B8%BA1%E7%9A%84%E9%82%A3%E6%9D%A1%E6%97%A5%E5%BF%97%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E6%8F%92%E5%85%A5%E4%B8%BB%E9%94%AE%E5%80%BC%E4%B8%BA2%E7%9A%84%E8%AE%B0%E5%BD%95%E6%97%B6%E4%BA%A7%E7%94%9F%E7%9A%84%E9%82%A3%E6%9D%A1undo%E6%97%A5%E5%BF%97%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E6%9C%80%E8%BF%91%E4%B8%80%E6%AC%A1%E5%AF%B9%E8%AF%A5%E8%AE%B0%E5%BD%95%E5%81%9A%E6%94%B9%E5%8A%A8%E6%97%B6%E4%BA%A7%E7%94%9F%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%9B%0A*%20%E7%94%B1%E4%BA%8E%E6%9C%AC%E6%9D%A1UPDATE%E8%AF%AD%E5%8F%A5%E4%B8%AD%E6%9B%B4%E6%96%B0%E4%BA%86%E7%B4%A2%E5%BC%95%E5%88%97key1%E7%9A%84%E5%80%BC%EF%BC%8C%E6%89%80%E4%BB%A5%E9%9C%80%E8%A6%81%E8%AE%B0%E5%BD%95%E4%B8%80%E4%B8%8B%E7%B4%A2%E5%BC%95%E5%88%97%E5%90%84%E5%88%97%E4%BF%A1%E6%81%AF%E9%83%A8%E5%88%86%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E6%8A%8A%E4%B8%BB%E9%94%AE%E5%92%8Ckey1%E5%88%97%E6%9B%B4%E6%96%B0%E5%89%8D%E7%9A%84%E4%BF%A1%E6%81%AF%E5%A1%AB%E5%85%A5%E3%80%82%0A%0A%0A%23%23%23%23%203-3-2%20%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%94%AE%E7%9A%84%E6%83%85%E5%86%B5%0A%0A%0A%E5%9C%A8%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E4%B8%AD%EF%BC%8C%E8%AE%B0%E5%BD%95%E6%98%AF%E6%8C%89%E7%85%A7%E4%B8%BB%E9%94%AE%E5%80%BC%E7%9A%84%E5%A4%A7%E5%B0%8F%E8%BF%9E%E6%88%90%E4%BA%86%E4%B8%80%E4%B8%AA%E5%8D%95%E5%90%91%E9%93%BE%E8%A1%A8%E7%9A%84%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E6%9B%B4%E6%96%B0%E4%BA%86%E6%9F%90%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%9A%84%E4%B8%BB%E9%94%AE%E5%80%BC%EF%BC%8C%E6%84%8F%E5%91%B3%E7%9D%80%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%9C%A8%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E4%B8%AD%E7%9A%84%E4%BD%8D%E7%BD%AE%E5%B0%86%E4%BC%9A%E5%8F%91%E7%94%9F%E6%94%B9%E5%8F%98%EF%BC%8C%E6%AF%94%E5%A6%82%E4%BD%A0%E5%B0%86%E8%AE%B0%E5%BD%95%E7%9A%84%E4%B8%BB%E9%94%AE%E5%80%BC%E4%BB%8E1%E6%9B%B4%E6%96%B0%E4%B8%BA10000%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%BF%98%E6%9C%89%E9%9D%9E%E5%B8%B8%E5%A4%9A%E7%9A%84%E8%AE%B0%E5%BD%95%E7%9A%84%E4%B8%BB%E9%94%AE%E5%80%BC%E5%88%86%E5%B8%83%E5%9C%A81%20~%2010000%E4%B9%8B%E9%97%B4%E7%9A%84%E8%AF%9D%EF%BC%8C%E9%82%A3%E4%B9%88%E8%BF%99%E4%B8%A4%E6%9D%A1%E8%AE%B0%E5%BD%95%E5%9C%A8%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E4%B8%AD%E5%B0%B1%E6%9C%89%E5%8F%AF%E8%83%BD%E7%A6%BB%E5%BE%97%E9%9D%9E%E5%B8%B8%E8%BF%9C%EF%BC%8C%E7%94%9A%E8%87%B3%E4%B8%AD%E9%97%B4%E9%9A%94%E4%BA%86%E5%A5%BD%E5%A4%9A%E4%B8%AA%E9%A1%B5%E9%9D%A2%E3%80%82%E9%92%88%E5%AF%B9UPDATE%E8%AF%AD%E5%8F%A5%E4%B8%AD%E6%9B%B4%E6%96%B0%E4%BA%86%E8%AE%B0%E5%BD%95%E4%B8%BB%E9%94%AE%E5%80%BC%E7%9A%84%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%EF%BC%8CInnoDB%E5%9C%A8%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E4%B8%AD%E5%88%86%E4%BA%86%E4%B8%A4%E6%AD%A5%E5%A4%84%E7%90%86%EF%BC%9A%0A%0A*%20%E5%B0%86%E6%97%A7%E8%AE%B0%E5%BD%95%E8%BF%9B%E8%A1%8C**delete%20mark**%E6%93%8D%E4%BD%9C%0A%E9%AB%98%E8%83%BD%E6%B3%A8%E6%84%8F%EF%BC%9A**%E8%BF%99%E9%87%8C%E6%98%AFdelete%20mark%E6%93%8D%E4%BD%9C%EF%BC%81%E8%BF%99%E9%87%8C%E6%98%AFdelete%20mark%E6%93%8D%E4%BD%9C%EF%BC%81%E8%BF%99%E9%87%8C%E6%98%AFdelete%20mark%E6%93%8D%E4%BD%9C%EF%BC%81**%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E5%9C%A8UPDATE%E8%AF%AD%E5%8F%A5%E6%89%80%E5%9C%A8%E7%9A%84%E4%BA%8B%E5%8A%A1%E6%8F%90%E4%BA%A4%E5%89%8D%EF%BC%8C%E5%AF%B9%E6%97%A7%E8%AE%B0%E5%BD%95%E5%8F%AA%E5%81%9A%E4%B8%80%E4%B8%AAdelete%20mark%E6%93%8D%E4%BD%9C%EF%BC%8C%E5%9C%A8%E4%BA%8B%E5%8A%A1%E6%8F%90%E4%BA%A4%E5%90%8E%E6%89%8D%E7%94%B1%E4%B8%93%E9%97%A8%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%81%9Apurge%E6%93%8D%E4%BD%9C%EF%BC%8C%E6%8A%8A%E5%AE%83%E5%8A%A0%E5%85%A5%E5%88%B0%E5%9E%83%E5%9C%BE%E9%93%BE%E8%A1%A8%E4%B8%AD%E3%80%82%E8%BF%99%E9%87%8C%E4%B8%80%E5%AE%9A%E8%A6%81%E5%92%8C%E6%88%91%E4%BB%AC%E4%B8%8A%E8%BE%B9%E6%89%80%E8%AF%B4%E7%9A%84%E5%9C%A8%E4%B8%8D%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95%E4%B8%BB%E9%94%AE%E5%80%BC%E6%97%B6%EF%BC%8C%E5%85%88%E7%9C%9F%E6%AD%A3%E5%88%A0%E9%99%A4%E6%97%A7%E8%AE%B0%E5%BD%95%EF%BC%8C%E5%86%8D%E6%8F%92%E5%85%A5%E6%96%B0%E8%AE%B0%E5%BD%95%E7%9A%84%E6%96%B9%E5%BC%8F%E5%8C%BA%E5%88%86%E5%BC%80%EF%BC%81%0A!%5B677c51a71914d5d9b3c31edc74a5dd06.png%5D(en-resource%3A%2F%2Fdatabase%2F1081%3A0)%0A%0A*%20%E6%A0%B9%E6%8D%AE%E6%9B%B4%E6%96%B0%E5%90%8E%E5%90%84%E5%88%97%E7%9A%84%E5%80%BC%E5%88%9B%E5%BB%BA%E4%B8%80%E6%9D%A1%E6%96%B0%E8%AE%B0%E5%BD%95%EF%BC%8C%E5%B9%B6%E5%B0%86%E5%85%B6%E6%8F%92%E5%85%A5%E5%88%B0%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E4%B8%AD%EF%BC%88%E9%9C%80%E9%87%8D%E6%96%B0%E5%AE%9A%E4%BD%8D%E6%8F%92%E5%85%A5%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%89%E3%80%82%0A%E7%94%B1%E4%BA%8E%E6%9B%B4%E6%96%B0%E5%90%8E%E7%9A%84%E8%AE%B0%E5%BD%95%E4%B8%BB%E9%94%AE%E5%80%BC%E5%8F%91%E7%94%9F%E4%BA%86%E6%94%B9%E5%8F%98%EF%BC%8C%E6%89%80%E4%BB%A5%E9%9C%80%E8%A6%81%E9%87%8D%E6%96%B0%E4%BB%8E%E8%81%9A%E7%B0%87%E7%B4%A2%E5%BC%95%E4%B8%AD%E5%AE%9A%E4%BD%8D%E8%BF%99%E6%9D%A1%E8%AE%B0%E5%BD%95%E6%89%80%E5%9C%A8%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%8C%E7%84%B6%E5%90%8E%E6%8A%8A%E5%AE%83%E6%8F%92%E8%BF%9B%E5%8E%BB%E3%80%82%0A%0A%E9%92%88%E5%AF%B9UPDATE%E8%AF%AD%E5%8F%A5%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95%E4%B8%BB%E9%94%AE%E5%80%BC%E7%9A%84%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%EF%BC%8C%E5%9C%A8%E5%AF%B9%E8%AF%A5%E8%AE%B0%E5%BD%95%E8%BF%9B%E8%A1%8Cdelete%20mark%E6%93%8D%E4%BD%9C%E5%89%8D%EF%BC%8C%E4%BC%9A%E8%AE%B0%E5%BD%95%E4%B8%80%E6%9D%A1%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_DEL_MARK_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%9B%E4%B9%8B%E5%90%8E%E6%8F%92%E5%85%A5%E6%96%B0%E8%AE%B0%E5%BD%95%E6%97%B6%EF%BC%8C%E4%BC%9A%E8%AE%B0%E5%BD%95%E4%B8%80%E6%9D%A1%E7%B1%BB%E5%9E%8B%E4%B8%BATRX_UNDO_INSERT_REC%E7%9A%84undo%E6%97%A5%E5%BF%97%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%E6%AF%8F%E5%AF%B9%E4%B8%80%E6%9D%A1%E8%AE%B0%E5%BD%95%E7%9A%84%E4%B8%BB%E9%94%AE%E5%80%BC%E5%81%9A%E6%94%B9%E5%8A%A8%E6%97%B6%EF%BC%8C%E4%BC%9A%E8%AE%B0%E5%BD%952%E6%9D%A1undo%E6%97%A5%E5%BF%97%E3%80%82%0A%0A%23%23%20undo%20log%20%E5%85%B6%E4%BB%96%E8%AF%A6%E8%A7%81%E3%80%8A%E6%8E%98%E9%87%91%E5%B0%8F%E5%86%8C%E3%80%8B%E7%AC%AC24%E8%8A%82</center></span>
</div></body></html> 